使用login_hint预填充Google oAuth2的电子邮箱

时间:2013-05-16 00:27:11

标签: google-oauth

获取使用Google api(oAuth2)的访问代码时,一个参数称为login_hint,其定义为;

“当您的应用程序知道它正在尝试进行身份验证的用户时,它可能会提供此参数作为身份验证服务器的提示。传递此提示将预先填写登录表单上的电子邮箱或选择正确的多登录会话,从而简化了登录流程。“

我发现它没有填写电子邮箱并想知道原因。网址形成如下;

var url:String = 'https://accounts.google.com/o/oauth2/auth?' +
    'scope=https://mail.google.com/&' +
    'redirect_uri=<my_redirect_uri>&' +
    'response_type=code&' +
    'login_hint=abc@gmail.com&' +
    'client_id=<my_client_id>;

网址可以正常运行以获取登录页面,但电子邮件字段未预先填写。谁能告诉我如何使这项工作?

2 个答案:

答案 0 :(得分:6)

很奇怪,我用客户端尝试了你的网址,但它确实有效。你能确认https://accounts.google.com/o/oauth2/auth?redirect_uri=https://developers.google.com/oauthplayground&response_type=code&client_id=407408718192.apps.googleusercontent.com&scope=https://mail.google.com/&login_hint=abc@gmail.com对你有用吗?用现有的电子邮件替换abc@gmail.com。

答案 1 :(得分:4)

这里有一个问题 - 谷歌不会预先填充假的Gmail地址。如果您将“example@gmail.com”作为参数,它将无法正常工作。只需尝试您的真实电子邮件地址,它将工作正常。花了我一个小时才意识到这一点。