How does google sign-in for Android application work?
This is my understanding about auth flow for a web application;
This is recommended for mobile application, as per RFC 8252
When I go to Google developers console > Create Credentials > OAuth Client id > Android [Application type]
, it asks me for: name, SHA1 fingerprint, and package name.
I'm assuming that the redirect URI is not required, and my app will get the control or rather auth code when a user authorizes my application as I'm setting the package name when I create credential. (As given in this answer). Please correct me if my understanding is wrong.
At this point, I need to send the auth_code to the server for validation which requires client id, and secret. But I'm not provided with any client secret at the time of creating credentials.
So how exactly this whole thing should work?
UPDATE
I tried to generate configuration from their tutorial. It generated 2 credentials: one for web application, another for Android. It has also generated a credentials.json
which contains an entry for
web-client. Now if I understnad correctly, this code will go in android app to get auth code.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestServerAuthCode("client id issued for web application")'
.build()
However, if my above finding is correct then it raises more questions to validate my finding.
- When will I pass client id generated for Android?
- What will be the redirect URL in this case? ( I don't think we need to set it)
- Will I've to use all the client IDs at server side to validate the auth_code?
android oauth-2.0 google-oauth google-auth-library-nodejs
add a comment |
This is my understanding about auth flow for a web application;
This is recommended for mobile application, as per RFC 8252
When I go to Google developers console > Create Credentials > OAuth Client id > Android [Application type]
, it asks me for: name, SHA1 fingerprint, and package name.
I'm assuming that the redirect URI is not required, and my app will get the control or rather auth code when a user authorizes my application as I'm setting the package name when I create credential. (As given in this answer). Please correct me if my understanding is wrong.
At this point, I need to send the auth_code to the server for validation which requires client id, and secret. But I'm not provided with any client secret at the time of creating credentials.
So how exactly this whole thing should work?
UPDATE
I tried to generate configuration from their tutorial. It generated 2 credentials: one for web application, another for Android. It has also generated a credentials.json
which contains an entry for
web-client. Now if I understnad correctly, this code will go in android app to get auth code.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestServerAuthCode("client id issued for web application")'
.build()
However, if my above finding is correct then it raises more questions to validate my finding.
- When will I pass client id generated for Android?
- What will be the redirect URL in this case? ( I don't think we need to set it)
- Will I've to use all the client IDs at server side to validate the auth_code?
android oauth-2.0 google-oauth google-auth-library-nodejs
I've got all the answer excluding one that if I need to implement redirect URL as server side.
– Amit Kumar Gupta
Nov 24 at 2:30
add a comment |
This is my understanding about auth flow for a web application;
This is recommended for mobile application, as per RFC 8252
When I go to Google developers console > Create Credentials > OAuth Client id > Android [Application type]
, it asks me for: name, SHA1 fingerprint, and package name.
I'm assuming that the redirect URI is not required, and my app will get the control or rather auth code when a user authorizes my application as I'm setting the package name when I create credential. (As given in this answer). Please correct me if my understanding is wrong.
At this point, I need to send the auth_code to the server for validation which requires client id, and secret. But I'm not provided with any client secret at the time of creating credentials.
So how exactly this whole thing should work?
UPDATE
I tried to generate configuration from their tutorial. It generated 2 credentials: one for web application, another for Android. It has also generated a credentials.json
which contains an entry for
web-client. Now if I understnad correctly, this code will go in android app to get auth code.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestServerAuthCode("client id issued for web application")'
.build()
However, if my above finding is correct then it raises more questions to validate my finding.
- When will I pass client id generated for Android?
- What will be the redirect URL in this case? ( I don't think we need to set it)
- Will I've to use all the client IDs at server side to validate the auth_code?
android oauth-2.0 google-oauth google-auth-library-nodejs
This is my understanding about auth flow for a web application;
This is recommended for mobile application, as per RFC 8252
When I go to Google developers console > Create Credentials > OAuth Client id > Android [Application type]
, it asks me for: name, SHA1 fingerprint, and package name.
I'm assuming that the redirect URI is not required, and my app will get the control or rather auth code when a user authorizes my application as I'm setting the package name when I create credential. (As given in this answer). Please correct me if my understanding is wrong.
At this point, I need to send the auth_code to the server for validation which requires client id, and secret. But I'm not provided with any client secret at the time of creating credentials.
So how exactly this whole thing should work?
UPDATE
I tried to generate configuration from their tutorial. It generated 2 credentials: one for web application, another for Android. It has also generated a credentials.json
which contains an entry for
web-client. Now if I understnad correctly, this code will go in android app to get auth code.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestServerAuthCode("client id issued for web application")'
.build()
However, if my above finding is correct then it raises more questions to validate my finding.
- When will I pass client id generated for Android?
- What will be the redirect URL in this case? ( I don't think we need to set it)
- Will I've to use all the client IDs at server side to validate the auth_code?
android oauth-2.0 google-oauth google-auth-library-nodejs
android oauth-2.0 google-oauth google-auth-library-nodejs
edited Nov 23 at 4:04
asked Nov 21 at 10:05
Amit Kumar Gupta
3,75484865
3,75484865
I've got all the answer excluding one that if I need to implement redirect URL as server side.
– Amit Kumar Gupta
Nov 24 at 2:30
add a comment |
I've got all the answer excluding one that if I need to implement redirect URL as server side.
– Amit Kumar Gupta
Nov 24 at 2:30
I've got all the answer excluding one that if I need to implement redirect URL as server side.
– Amit Kumar Gupta
Nov 24 at 2:30
I've got all the answer excluding one that if I need to implement redirect URL as server side.
– Amit Kumar Gupta
Nov 24 at 2:30
add a comment |
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409591%2fhow-does-google-sign-in-for-android-application-work%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409591%2fhow-does-google-sign-in-for-android-application-work%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I've got all the answer excluding one that if I need to implement redirect URL as server side.
– Amit Kumar Gupta
Nov 24 at 2:30