2016-07-04 3 views
0

Google oauthを使用して自分のアプリを認証しようとしています。私は特定の "@ eg.com"を持つ特定の人だけがアクセス権を取得できるようにしたいと考えています。google oauthのメールIDのドメイン名を確認してください

私は私のURLで

hd="eg.com" 

含めてみました。 しかし、 "@ gmail.com"または "@ company.com"ドメインでも受け入れています。 "[email protected]"のようなユーザーがトークンとアクセス権を得るように、これを行う方法はありますか?

編集: 私は私はあなたがあなたのアプリケーションに だけのトークンを保存し、ドメインあれば、いくつかのエラーメッセージを表示しないことを実装する必要があります考えて、認可

+0

は、認証後のステップは有用であろう。その電子メールドメインなしで認証されたユーザーへのアクセスを拒否するだけです。 –

+0

詳細を教えてもらえますか? @PatrickHofman –

答えて

0

を使用することができますでしょう(とすべきである!)検証をあなたのid_tokenをgoogle apiに呼び出します。 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

+0

ありがとう。これは私の問題を解決します。しかし、追加のHTTPリクエストが必要です。私は他の方法がないと思う! –

+0

私はあなたのクライアントがどのプラットフォームにいるのかは分かりませんが、Androidの場合、追加のhttpリクエストを必要としない「GoogleSignInResult」でもメールアドレスを取得できます – derpirscher

0

を実行するために私のアプリでWebViewのを使用しています一部は許可されていません。

あなたはusersだろう

string s = "[email protected]"; 
string[] words = s.Split('@'); 

words[0]を使用してC#でのドメイン部分を取得することができますし、words[1]eg.comまた

あなたはあなたができるMailAddress

+0

ありがとうございます。しかし、ユーザーのメールアドレスがhttp:// google/serviceLoginページに入力されている場合、どのようにメールIDを取得できますか? –

+0

それはあなたが何をしようとしているのか、入力された電子メールがすでに浄化されているかどうかによって異なりますが、 'test @ eg.com @ gmail.com'のような入力で' words [1] 'が予期しないかもしれません。 –

+0

@hyoyin_Kyuoma authの後、返されたオブジェクトには無効なメールアドレスがあるので、@ google auth wont workという@PetrusTheronのメールアドレス –

関連する問題