【问题标题】:ASP.NET Web API Facebook authenticationASP.NET Web API Facebook 身份验证
【发布时间】:2013-09-11 08:32:13
【问题描述】:

我正在开发一个由几个组件组成的系统:

  1. RESTful 服务 - 必须可从以下位置访问的公共 API 移动设备。 (ASP.NET Web API)
  2. ASP.NET MVC 4 网站,也使用这些服务。
  3. 移动应用

Site\app 用户应该能够使用他们的 Facebook 帐户登录那里。我目前对流程的理解如下:

  1. 站点\应用程序向 Facebook 发出请求以获取访问令牌。一旦用户确认将他\她的详细信息传递给我的应用程序,我的站点\应用程序就会收到身份验证令牌。

  2. 站点\应用程序将令牌传递给我的 RESTful API

  3. API 通过向 facebook 发送带有密钥的请求来验证令牌。然后用户可以被创建\认证,api为用户生成访问令牌。每次用户尝试访问 API 时,我都认为没有任何理由发出请求。

我正在考虑实现这一点的最佳方法。 ASP.NET MVC 4 具有开箱即用的 OAuth 支持,但它仅在您在 MVC 应用程序中执行所有操作时才有效。 DotNetOpenAuth 已内置 FacebookClient 类,但它假设相同的想法。出于安全原因,我不想在 API 之外公开秘密。

作为最后的选择,我们可以通过直接向 facebook 发出请求来实现这一点,但我想知道是否有更好的选择? DotNetOpenAuth 可以用于这两个步骤的过程吗?

【问题讨论】:

  • 你找到方法了吗?

标签: .net asp.net-web-api facebook-authentication


【解决方案1】:

Asp.Net Web api 支持外部登录,这是通过 Owin 管道支持的。所有流行的社交网络都有提供程序,并且可以为您的 api 轻松设置。在这种情况下,应用程序的流程如下

  1. 网站/应用程序请求您的 api 以获得支持的登录提供程序(您的 api 可以支持多个社交网络,并且还拥有自己的用户名/密码登录)。
  2. 如果用户选择通过 facebook 登录,那么我们会向 api 发出请求,这会将用户重定向到 facebook 登录。
  3. 成功登录后,facebook 令牌将被发送到 api,api 将使用自己的令牌包装此 facebook 令牌,并将其连同电子邮件、姓名等其他详细信息一起发送回站点/应用程序。
  4. 使用从 facebook 获得的电子邮件/详细信息,我们使用 api 注册用户。

您可以找到实现相同 here 的示例

【讨论】:

    猜你喜欢
    • 2018-01-28
    • 2012-06-16
    • 2017-10-22
    • 1970-01-01
    • 2015-09-17
    • 2019-09-03
    • 1970-01-01
    • 2017-07-30
    • 2016-12-22
    相关资源
    最近更新 更多