OAuth:在浏览器和WinPhone应用

时间:2016-10-16 17:58:50

标签: azure authentication oauth google-authentication

我正在尝试对Azure中托管的移动应用程序使用Google OAuth身份验证,但获取不同格式的用户ID(SID)。

当我直接从浏览器访问API时,我被重定向到Google登录页面,并且在身份验证之后,我的API的下一个请求带有标题:

"x-ms-client-principal-name":"pavlolissovtest@gmail.com",  
"x-ms-client-principal-id":"108491597139717511334",  
"x-ms-client-principal-idp":"google",  
"x-ms-token-google-access-token":"ya29.Ci9-A-oE8p4vVelYhRKqjMKY6KGxeW4OtXT-KGtBO3AxsiBqiCawn8sxL-qg4msWrw"  

Windows Phone应用程序(使用WindowsAzure.MobileServices.MobileServicesClient进行身份验证)中,使用同一帐户登录时,请求会附带不同的标头:

"x-ms-client-principal-id":"sid:3fc89f071b7cb8f18919614ac46d3636",
"x-ms-client-principal-idp":"google",
"x-ms-token-google-access-token":"ya29.Ci9-AxC3kfrYrV8ssLUkbwFJJYDPsklsUH7r3HG0f6KB_wWzXV9AqE_wGPASiYxcWQ"

所以现在我对同一个用户帐户有不同的主要ID。 如果我现在为两个令牌调用https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=,我会得到相同的结果

{
 "azp": "1083509260178-cntp3794bggcs5dtkse0mtbvpqigoa78.apps.googleusercontent.com",
 "aud": "1083509260178-cntp3794bggcs5dtkse0mtbvpqigoa78.apps.googleusercontent.com",
 "sub": "108491597139717511334",
 "scope": "https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email",
 "exp": "1476643317",
 "expires_in": "3161",
 "email": "pavlolissovtest@gmail.com",
 "email_verified": "true",
 "access_type": "online"
}

这允许我识别用户使用的登录选项,但是为每个请求调用googleapis是否真的正确? 从标题中识别用户的正确方法是什么,或者将一个值转换为另一个值?

让这些值有所不同是什么意思?

感谢您的建议!

0 个答案:

没有答案