Azure应用程序服务轻松验证

Azure应用程序服务轻松验证,azure,authentication,azure-mobile-services,Azure,Authentication,Azure Mobile Services,我用easy auth为facebook和google身份验证设置了一个Azure移动后端,它可以按预期工作 每次用户登录任何受支持的提供商时,我都希望能够验证它是否是新用户(数据库中没有电子邮件),而无需客户端再打一个电话。这可能吗 每次用户登录任何受支持的提供商时,我都希望能够验证它是否是新用户(数据库中没有电子邮件),而无需客户端再打一个电话。这可能吗 据我所知,我们无法直接验证它是否是新用户 无论您使用的是服务器流还是客户端流,easy auth都只返回客户端访问移动后端资源的访问令牌,

我用easy auth为facebook和google身份验证设置了一个Azure移动后端,它可以按预期工作

每次用户登录任何受支持的提供商时,我都希望能够验证它是否是新用户(数据库中没有电子邮件),而无需客户端再打一个电话。这可能吗

每次用户登录任何受支持的提供商时,我都希望能够验证它是否是新用户(数据库中没有电子邮件),而无需客户端再打一个电话。这可能吗

据我所知,我们无法直接验证它是否是新用户

无论您使用的是服务器流还是客户端流,easy auth都只返回客户端访问移动后端资源的访问令牌,不会检查用户是新用户还是旧用户

如果您想达到这个要求,您需要编写自己的逻辑

您可以在用户成功登录后编写代码

例如,facebook登录

如果您已成功使用登录,则可以调用GetAppServiceIdentityAsync扩展方法来获取登录凭据,其中包括针对Facebook Graph 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();
}
//获取登录用户的凭据。
var凭证=
等待这个。用户
.GetAppServiceIdentityAsync(此.Request);
如果(credentials.Provider==“Facebook”)
{
//使用Facebook访问令牌创建查询字符串。
var fbRequestUrl=”https://graph.facebook.com/me/feed?access_token="
+credentials.AccessToken;
//创建HttpClient请求。
var client=new System.Net.Http.HttpClient();
//从Facebook请求当前用户信息。
var resp=await client.GetAsync(fbRequestUrl);
resp.EnsuccessStatusCode();
//在这里用Facebook用户信息做点什么。
var fbInfo=wait resp.Content.ReadAsStringAsync();
}
然后您可以根据用户信息检查数据库


有关如何在服务器端获取用户信息的更多详细信息,请参阅。

谢谢您的帮助。我会通过你的指导来实现我的目标,当我成功的时候,我会在这里发布。