2017-09-20 5 views
0

나는 Azure 모바일 백엔드가 페이스 북과 구글 인증을위한 쉬운 인증으로 설정되어 있으며 예상대로 작동합니다.Azure App 서비스 Easy Auth

사용자가 지원되는 모든 제공 업체에 로그인 할 때마다 클라이언트로부터 추가 전화를하지 않고 새 사용자인지 여부 (데이터베이스에없는 전자 메일)를 확인할 수 있기를 원합니다. 이것이 가능한가?

답변

1

사용자가 지원되는 모든 제공 업체에 로그인 할 때마다 클라이언트에서 추가 전화를하지 않고 새 사용자인지 여부 (데이터베이스에없는 전자 메일)를 확인할 수 있어야합니다. 이것이 가능한가?

알고있는 한, 새로운 사용자인지 직접 확인할 수 없습니다.

서버 흐름이나 클라이언트 흐름을 사용하든 상관없이 쉬운 인증은 클라이언트가 모바일 백엔드 리소스에 액세스 할 수 있도록 액세스 토큰을 반환하기 만하면 사용자가 새 것이거나 오래된 것인지 확인하지 않습니다.

이 요구 사항을 충족 시키려면 자신 만의 논리를 작성해야합니다.

사용자가 성공적으로 로그인 한 후에 코드를 작성할 수 있습니다.

예 : 페이스 북 로그인.

로그인이 성공적으로 완료되면 GetAppServiceIdentityAsync 확장 메소드를 호출하여 페이스 북 그래프 API에 대한 요청을하는 데 필요한 액세스 토큰을 포함하는 로그인 자격 증명을 얻을 수 있습니다.

// Get the credentials for the logged-in user. 
var credentials = 
    await this.User 
    .GetAppServiceIdentityAsync<FacebookCredentials>(this.Request); 

if (credentials.Provider == "Facebook") 
{ 
    // Create a query string with the Facebook access token. 
    var fbRequestUrl = "https://graph.facebook.com/me/feed?access_token=" 
     + credentials.AccessToken; 

    // Create an HttpClient request. 
    var client = new System.Net.Http.HttpClient(); 

    // Request the current user info from Facebook. 
    var resp = await client.GetAsync(fbRequestUrl); 
    resp.EnsureSuccessStatusCode(); 

    // Do something here with the Facebook user information. 
    var fbInfo = await resp.Content.ReadAsStringAsync(); 
} 

그런 다음 사용자 정보에 따라 데이터베이스를 확인할 수 있습니다.

서버 측에서 사용자 정보를 얻는 방법에 대한 자세한 내용은 How to: Retrieve authenticated user information을 참조하십시오.

+0

도움 주셔서 감사합니다. 나는 당신의 지시를 통해 나의 목표를 성취하려고 노력할 것이며, 성공할 때 여기에 올릴 것입니다. – LuizFranco

관련 문제