Oauth2使用hd无法正常限制使用特定域名的电子邮件

时间:2015-12-11 09:26:05

标签: security authentication grails oauth-2.0 google-oauth2

我的应用通过在我的请求中的hd参数中指定abc.com来限制Oauth2登录到特定域,例如abc.com。Restrict Login Email with Google OAuth2.0 to Specific Domain Name但是过去几天它允许任何拥有Google帐户的人登录。我确信我没有更改代码,甚至验证了结果uri在其hd参数中指定了我的域名后面这个链接指令https://developers.google.com/identity/protocols/OpenIDConnect#hd-param。所以任何人都可以告诉我我做错了什么?这是我的代码

     `redirect( uri : "https://accounts.google.com/o/oauth2/auth?" +
            "redirect_uri=${redirectUri}&" +
            "response_type=code&" +
            "client_id="${my_client_id}"& +
            "scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email" +
            "+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&" +
            "approval_prompt=auto&" +
            "hd=apposit.com")`

1 个答案:

答案 0 :(得分:10)

我不知道为什么会发生这种情况,但是您可以通过使用java的abc.com方法或 endsWith()检查用户电子邮件是否包含contains()来添加除hd之外的第二种安全机制。在您允许用户进一步使用您的应用之前,更可靠

但这仍然是一个快速解决方案,其他解决方案应该回答这个问题