如何实现从Xamarin身份后端的外部登录
问题描述:
我有一个网站使用ASP.NET核心,它使用MS身份和来自Facebook的外部登录。如何实现从Xamarin身份后端的外部登录
我有一个Xamarin应用程序,使用Xamarin.Auth通过登录/密码登录到此后端。我想知道哪个是允许从应用程序外部登录到Facebook的最佳方式?
- 我应该为Android创建一个单独的Facebook应用程序还是应该使用相同的网站?
- 流量是多少? 我想到的是这样的:
- 使用Facebook SDK登录
- 从服务器端传递令牌服务器
- 检查电子邮件存在,或者FB用户ID存在
- 如果是检查使用Facebook的应用程序是否被注册,如果是登录
- 如果没有创建一个帐户
但直到现在我还没有存储用户的Facebook ID(只有电子邮件,用户也可以修改)。
答
Xamarin.Auth是客户端库,目前没有服务器端实现。
因此,您的服务器是受保护资源,Facebook将是授权服务器。获得令牌后(access_token
和refresh_token
),您将尝试访问保护资源,将access_token
作为凭证。受保护的资源将执行令牌内省(这可能是单独的服务 - 服务器),它将解码令牌,查找用户名(邮件)并检查令牌的有效期。 这在草稿(RFC)中没有指定,因此请检查FB如何执行令牌内省。
更多信息几个环节:
How to validate an OAuth 2.0 access token for a resource server?
http://blog.api-security.org/2014/10/oauth-20-token-introspection-profile.html
https://connect2id.com/products/server/docs/api/token-introspection
https://leastprivilege.com/2015/12/27/oauth-2-0-token-introspection-middleware-for-asp-net-5/