【问题标题】:How OAuth could be used in RESTfull AJAX-based Cliend-Server mobile app如何在基于 RESTful AJAX 的客户端-服务器移动应用程序中使用 OAuth
【发布时间】:2014-03-08 23:43:59
【问题描述】:

这是我当前的实验性应用设置:
1. 客户端 - Phonegap 应用程序。我们称它为“本机”,因为没有从 Web 服务器请求 html/js。仅 AJAX JSONP rpc 请求。
2. 资源服务器 - 带有自定义内容类型的 Drupal 7,用于交付的服务模块。 基本身份验证用于对 AJAX 请求进行身份验证。

使用“经典”注册/身份验证没有问题,用户输入登录名和密码,然后在 AJAX 请求中使用它来访问内容。

但现在我想实施 OAuth 作为繁琐的手动注册的替代方案,并具有额外的功能。

经过一些研究,我对它应该如何工作提出了部分想法:

  • 用户启动客户端应用。
  • Client 打开带有 URL 的 WebView 以进行 Auth。服务器(比如 Facebook)登录对话框,参数 redirect-uri 设置为 Resource Server
  • 用户输入 FB 登录名/密码。用户确认访问姓名、电子邮件等。成功。
  • 授权。服务器重定向到redirect-uri中定义的资源服务器,生成的代码作为参数。
  • 资源服务器Auth发送服务器端请求,提供生成的codeclient-idsecret。服务器的 API。
  • 授权。服务器返回access-token过期时间
  • 如我所想资源服务器使用从 Auth 收到的信息(电子邮件、姓名、出生日期等)创建新帐户。服务器,如果尚未创建帐户,或者验证此用户是否已注册,应允许登录(使用电子邮件,从 Auth.Server 接收,数据库查找,对吗?) .
  • 然后……现在呢?

我相信 Resource Server 现在可以将 WebView 重定向到具有特殊 URI 参数的某种虚拟地址,以便通知 Client 身份验证成功,并且 AJAX 调用现在应该被允许。

但是 Client - Resource Server 身份验证应该是什么样子的呢? 客户端没有“经典”模式中的登录名/密码对...应该将访问令牌用作某种更改(每次刷新后...对吗?)密码?

编辑:简而言之:Basic/Digest 身份验证在这里没有用处,所以我可以通过什么技术使用第三方 OAuth 身份验证过程来验证移动应用程序 AJAX 对我的 Web 服务器的请求。

【问题讨论】:

  • 一旦你有了访问令牌,你对服务器的所有调用都将使用 accessToken。你不需要那里的密码。请记住保存刷新令牌,因为访问令牌将过期,您需要使用它来获取新令牌。
  • @DaImTo 我相信你在谈论 Auth。服务器,例如 Facebook?是的,我应该使用访问令牌,但我的问题是关于 my web(此处为 Resource Server)服务器应如何允许 Client 进入(移动应用程序)在 OAuth 身份验证过程之后。如果没有登录名/密码,这里 AJAX 调用的基本/摘要式身份验证将毫无用处。

标签: ajax facebook authentication mobile oauth


【解决方案1】:

您需要自己的身份验证服务器,以便您可以生成自己的访问令牌,以便与您的资源服务器一起使用。您的访问令牌将识别调用应用程序和用户。登录到您的身份验证服务器的用户将通过 Facebook OAuth 流程而不是电子邮件/密码登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多