Asp.net web api 在移动和网络数据存储上注册/登录facebook和google

Asp.net web api 在移动和网络数据存储上注册/登录facebook和google,asp.net-web-api,oauth,single-sign-on,asp.net-identity,Asp.net Web Api,Oauth,Single Sign On,Asp.net Identity,我希望用户能够通过移动应用程序(android和ios)和/或网站(使用asp.net MVC构建)登录facebook/google 我的数据库应该存储什么才能使身份验证在移动应用程序和网站上正常工作?用户ID,谷歌/facebook代币 我不知道如何保存用户信息。 我应该把这个和OWIN结合起来吗?我对asp.net身份不太了解,但我已经看到它与第三方提供商相当直接……问题是,如果我第一次从移动应用程序登录,我是否应该通过编程将新用户添加到数据库中 到目前为止,我认为这似乎是最好的链接: 但

我希望用户能够通过移动应用程序(android和ios)和/或网站(使用asp.net MVC构建)登录facebook/google

我的数据库应该存储什么才能使身份验证在移动应用程序和网站上正常工作?用户ID,谷歌/facebook代币

我不知道如何保存用户信息。 我应该把这个和OWIN结合起来吗?我对asp.net身份不太了解,但我已经看到它与第三方提供商相当直接……问题是,如果我第一次从移动应用程序登录,我是否应该通过编程将新用户添加到数据库中

到目前为止,我认为这似乎是最好的链接:

但我希望有一个更简单的方法

我正在获取google/fb令牌并将其发送到服务器以获取用户的ID

我需要在这里做些什么,这样,如果google/fb用户通过web登录,他们将被识别为同一用户

似乎微软已经使使用ASP.Net身份为web设置社交登录变得如此简单,但却忽略了如何将其与移动设备一起使用,使用sql server db存储用户/成员详细信息


只是想找出将移动和web作为一个整体来管理用户的最佳方法此链接描述了您正在寻找的所有内容

为了检查用户是否已经存在于您的数据库中,您必须存储在数据库中的内容可以从您将从Facebook或Google获得的响应中获得。在验证用户凭据后,Facebook和Google必须返回用户的详细信息作为响应。如电子邮件Id、出生日期等,您可以将这些详细信息保存在数据库中,并在每次登录时检查该用户是否已存在,并相应注册

另一篇文章中提到了作为回应的细节


谷歌登录相对简单。 最简单的方法是将唯一的ID存储在本地数据库中,Google会为您认证的每个帐户返回该ID

您可以在登录意图成功后调用getSignInAccount方法

Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personEmail = acct.getEmail();
**String personId = acct.getId();**
Uri personPhoto = acct.getPhotoUrl();
无论是通过手机还是手机登录,你都知道是同一个人。详情请浏览


在任何情况下,每次有新用户登录时,都必须以编程方式将用户存储在数据库中。因此,您必须将他们的personID存储为一个附加字段,以便超时对他们进行身份验证。

对于移动设备,您需要在应用程序中实现web api。
Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personEmail = acct.getEmail();
**String personId = acct.getId();**
Uri personPhoto = acct.getPhotoUrl();