我正在尝试使用google oauth对我的应用进行身份验证。我想只允许一组具有特定" @ eg.com"能够获得访问权限。
我尝试了
hd="eg.com"
在我的网址中。 但它甚至接受了#34; @ gmail.com"或" @ company.com"域。 有没有办法做到这一点,所以用户喜欢" users@eg.com"只获得访问令牌和东西?
编辑: 我在我的应用中使用webview来执行授权
答案 0 :(得分:0)
我认为你必须在你的应用程序中实现它 如果域部分不是允许的部分,则不要存储令牌并显示一些错误消息。
您可以使用
在c#中获取域名部分string s = "users@eg.com";
string[] words = s.Split('@');
words[0]
为users
,words[1]
为eg.com
或者您可以使用MailAddress
答案 1 :(得分:0)
您可以(并且应该!)通过调用google api来验证您的id_token。致电https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123
并查看回复的各个字段。如果您要求"个人资料"您也可以获得email
字段。然后,您可以针对您的域检查此电子邮件,如果不适合,则拒绝访问。
有关详细文档,请参阅: https://developers.google.com/identity/sign-in/web/backend-auth#calling-the-tokeninfo-endpoint