How does google sign-in for Android application work?












1














This is my understanding about auth flow for a web application;



enter image description here



This is recommended for mobile application, as per RFC 8252



enter image description here



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.




  1. When will I pass client id generated for Android?

  2. What will be the redirect URL in this case? ( I don't think we need to set it)

  3. Will I've to use all the client IDs at server side to validate the auth_code?










share|improve this question
























  • 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
















1














This is my understanding about auth flow for a web application;



enter image description here



This is recommended for mobile application, as per RFC 8252



enter image description here



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.




  1. When will I pass client id generated for Android?

  2. What will be the redirect URL in this case? ( I don't think we need to set it)

  3. Will I've to use all the client IDs at server side to validate the auth_code?










share|improve this question
























  • 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














1












1








1







This is my understanding about auth flow for a web application;



enter image description here



This is recommended for mobile application, as per RFC 8252



enter image description here



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.




  1. When will I pass client id generated for Android?

  2. What will be the redirect URL in this case? ( I don't think we need to set it)

  3. Will I've to use all the client IDs at server side to validate the auth_code?










share|improve this question















This is my understanding about auth flow for a web application;



enter image description here



This is recommended for mobile application, as per RFC 8252



enter image description here



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.




  1. When will I pass client id generated for Android?

  2. What will be the redirect URL in this case? ( I don't think we need to set it)

  3. 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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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


















  • 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

















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
});


}
});














draft saved

draft discarded


















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
















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

404 Error Contact Form 7 ajax form submitting

How to know if a Active Directory user can login interactively

TypeError: fit_transform() missing 1 required positional argument: 'X'