Reputation: 51
I am trying ti get user Token using Facebook oauth2 api but i am facing this error when redirect url call.
InsecureTransportError at /data/FacebookAuth/ (insecure_transport) OAuth 2 MUST utilize https.
I have running ngrok & https setup but i can't figure out why it is giving me this error
Here is my code to get this token in django
#Facebook App Credentials
client_id = 'xxxx'
client_secret = 'xxxxx'
# OAuth endpoints given in the Facebook API documentation>
authorization_base_url = 'https://www.facebook.com/dialog/oauth'
token_url = 'https://graph.facebook.com/oauth/access_token'
redirect_uri = 'https://ab207c1f.ngrok.io/data/FacebookAuthRedirect'
facebook = OAuth2Session(client_id, redirect_uri=redirect_uri)
facebook = facebook_compliance_fix(facebook)
#Getting Facebook Authentication
def FacebookAuth(request):
authorization_url, state = facebook.authorization_url(authorization_base_url)
redirect(authorization_url)
#Getting Facebook Authentication Redirect
def FacebookAuthRedirect(request):
redirect_response = request.GET.get('code', '')
token = facebook.fetch_token(token_url, client_secret=client_secret,
authorization_response=redirect_response)
print(token)
return HttpResponse('ibrahim')
Upvotes: 2
Views: 508
Reputation: 51
After digging a bit. I found a solution that worked for me.
it was because of authorization_code = request.build_absolute_uri()
. I tried printing it and it contained "http" instead of "https". I replaced the string with https using the following code.
redirect_response = redirect_response.replace("http://", "https://")
Upvotes: 1