I've been trying to add Google Sign-In in Android but have a couple of doubts.
From the Android documentation Integrate google sign in android
In the server side authentication part Client Id
is required which is OAuth 2.0 web application client ID
for your backend server.
From android's documentation:
Get your backend server's OAuth 2.0 client ID If your app authenticates with a backend server or accesses Google APIs from your backend server, you must get the OAuth 2.0 client ID that was created for your server. To find the OAuth 2.0 client ID
From my understanding the flow would be:
auth code
from google which will be passed to the backend.access token
with the auth code
from the android app and the client secret
.acess token
we get the user's information and the access token
is saved in the database.My doubts are:
redirect_url
defined but I don't understand what would be the redirect_uri
in case of Android device or we need to pass this URL while getting the auth code
from Google.client id
and client secret
and got the auth code
and when I passed this auth code
to my login view I was getting the redirect_uri_mismatch
but If I put redirect_url = 'developer.google.com'
It works, I guess the auth code
contains host information from where it is generated that's why this should be the same as redirect_url
in my rest-auth view but then for android what it should be?Here is my Google Login View.
class GoogleLogin(SocialLoginView):
adapter_class = GoogleOAuth2Adapter
client_class = OAuth2Client
callback_url = 'localhost:8000' # What this should be?
Please ask for more information If I forgot to put any.
I am using this django-rest-auth
Some helpful link -
redirect_uri_mismatch
So Finally, I figured it out, Answering my own question so someone might find this helpful.
callback_url
in the GoogleLoginView and put the same in your Google developer console.Your Google sign in view should look like this.
class GoogleLogin(SocialLoginView):
authentication_classes = (JSONWebTokenAuthentication,)
adapter_class = GoogleOAuth2Adapter
callback_url = 'http://localhost:8000/accounts/google/login/callback/'
client_class = OAuth2Client
Note: You only need
callback_url
andclient_class
in case where you are passing the auth code to this view but if in you are passing theaccess_token
thencallback_url
andclient_class
is not necessary.