【问题标题】:Sencha touch 2 oauth2 authenticationSencha touch 2 oauth2 认证
【发布时间】:2013-05-28 21:56:59
【问题描述】:

使用 OAuth 2,我只需要限制用户访问允许的资源,其中与 API 的连接是通过 ext.js REST 代理进行的。 ext.js 代理负责数据检索和维护模型关系。我还没有找到一种优雅的方式来根据登录的用户从代理到后端进行不同的调用。

我想知道登录到我的应用程序的每个用户的代理是否必须不同,因为每个用户都有自己的访问令牌。

另一种选择是在代理初始化过程中让代理了解登录用户,并以持久方式保存此信息。

以前有没有人解决过类似的情况?

【问题讨论】:

    标签: rest authentication extjs oauth token


    【解决方案1】:

    文章详细解释了如何通过 Sencha Touch 使用 OAuth2。

    有多种使用 OAuth 的方法。一种是在初始身份验证后使用重定向(为此,您可以在 Sencha 登录视图中使用 iFrame)。另一个使用您的后端服务器作为 OAuth 服务器的中介,可以避免使用 iFrame 解决方案,但需要您的服务器上的更多逻辑。

    然后您可以使用会话 cookie,该 cookie 将随所有 HTTP 请求(包括您的 REST 调用)一起重新发送。大多数后端都支持会话 cookie,因此您需要做的就是查找作为 REST API 代码的一部分存储在会话对象中的用户 ID。

    另一个选项是在每个需要身份验证的 REST 调用中设置自定义 HTTP 标头。为避免重复代码,请从 Sencha 代理类创建派生类以设置包含访问令牌的标头。您可以将访问令牌存储在 Store 或 Application 对象中,或作为静态值存储在代理上。我已经为 REST 代理调用和 Sencha Direct 代理调用做了这个。

    AJAX 代理头属性:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-21
      • 2012-05-05
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多