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 구글 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

난 당신이 응용 프로그램에서 그냥 토큰을 저장하지 않는 구현하고 도메인이있는 경우 일부 오류 메시지를 표시해야합니다 생각 부분이 허용 된 부분이 아닙니다.

당신은 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 인증 후, 반환 된 객체는 이메일 주소가 –

관련 문제