使用login_hint预填Google oAuth2的电子邮件框

8
当获取使用Google API的访问代码(oAuth2)时,其中一个参数称为login_hint,并定义如下;
“当您的应用程序知道要验证哪个用户时,它可以将此参数提供给认证服务器作为提示。通过传递此提示,将在登录表单上预填充电子邮件框或选择正确的多重登录会话,从而简化登录流程。”
我发现它没有填写电子邮件框并想知道原因。URL的格式如下;
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个回答

9
奇怪,我使用客户端尝试了您的URL,并成功了。 请确认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替换为现有电子邮件。

我刚刚尝试直接访问该URL,但似乎在我测试的任何浏览器(chrome、FF、IE)中都无法工作。我是不是漏了什么或者这已经被更改了? - BlueFox
这个可以工作!login_hint会填充用户名,用户名是可编辑的,域名是不可编辑的。 - Phaneendra Charyulu Kanduri

9

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接