Sencha Touch 2 OAuth2认证

3
使用OAuth 2,我需要仅限用户访问允许的资源,在通过ext.js REST代理连接到API时。 ext.js代理负责数据检索和维护模型关系。我还没有找到一种优雅的方式来使代理从后端发出不同的调用,这取决于已登录的用户。
我想知道代理是否必须针对每个登录到我的应用程序的用户不同,因为每个用户都有自己的访问令牌。
另一个选项是在代理初始化过程中使代理了解已登录的用户,并以持久方式保存此信息。
是否有人曾经解决过类似的情况?
1个回答

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代理标头属性:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接