私はAzureモバイルバックエンドをfacebookとgoogle認証用の簡単な認証で設定しており、期待どおりに動作します。Azure AppサービスEasy Auth
サポートされているプロバイダのいずれかにサインインするたびに、クライアントからの追加のコールをせずに、新しいユーザかどうかを確認できます(データベースにない電子メール)。これは可能ですか?
私はAzureモバイルバックエンドをfacebookとgoogle認証用の簡単な認証で設定しており、期待どおりに動作します。Azure AppサービスEasy Auth
サポートされているプロバイダのいずれかにサインインするたびに、クライアントからの追加のコールをせずに、新しいユーザかどうかを確認できます(データベースにない電子メール)。これは可能ですか?
ユーザがサポートされているプロバイダのいずれかにサインインするたびに、クライアントからの追加のコールをせずに、新しいユーザかどうかを確認できます(データベースにない電子メール)。これは可能ですか?
私が知る限り、新しいユーザーかどうかは直接確認できませんでした。
サーバーフローまたはクライアントフローを使用しても、簡単な認証では、クライアントがモバイルバックエンドリソースにアクセスするためのアクセストークンが返されます。ユーザーは新しいユーザーか古いユーザーかはチェックされません。
この要件を達成するには、独自のロジックを作成する必要があります。
ユーザーログイン後にコードを書くことができます。
たとえば、Facebookのログイン。
ログインが正常に行われている場合は、GetAppServiceIdentityAsync拡張メソッドを呼び出してFacebookのグラフ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を参照してください。
助けてくれてありがとう。私はあなたの指示に従って私の目標を達成しようとし、成功したらここに投稿します。 – LuizFranco