检查google oauth的电子邮件ID的域名

时间:2016-07-04 07:07:04

标签: c# google-oauth2

我正在尝试使用google oauth对我的应用进行身份验证。我想只允许一组具有特定" @ eg.com"能够获得访问权限。

我尝试了

 hd="eg.com"

在我的网址中。 但它甚至接受了#34; @ gmail.com"或" @ company.com"域。 有没有办法做到这一点,所以用户喜欢" users@eg.com"只获得访问令牌和东西?

编辑: 我在我的应用中使用webview来执行授权

2 个答案:

答案 0 :(得分:0)

我认为你必须在你的应用程序中实现它 如果域部分不是允许的部分,则不要存储令牌并显示一些错误消息。

您可以使用

在c#中获取域名部分
string s = "users@eg.com";
string[] words = s.Split('@');

words[0]userswords[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