在每个 AJAX 请求(Sencha Touch 2)中发送用户详细信息(会话令牌)
Send user details (session token) within every AJAX requests (Sencha Touch 2)
我正在使用用户特定的数据集构建Sencha Touch 2应用程序。
应用程序的体系结构:
Sencha Touch App <=====> Java Server 后端与 REST Services(许多 AJAX 请求 =) )
我实际拥有的是:
- 使用用户名/密码登录用户
应用程序被初始化,日志通知开始发挥作用。将表单作为 AJAX 请求提交后,服务器后端会检查用户数据并调用客户端回调函数。
我想做的是:
- 回调函数应
- 使用会话令牌创建 cookie 或
- 将会话令牌存储在本地存储 (http://docs.sencha.com/touch/2-0/#!/api/Ext.data.proxy.LocalStorage) 中,或
- 将会话令牌存储在 JS 变量中
好吧,应该不是问题。
但是我怎样才能做到以下几点:
大多数数据特定于一个用户,如果需要,应由 REST 服务返回(通过单击导航,...)。如何在每个 AJAX 请求中发送会话令牌(见上文) - 以便服务器可以提供合适的数据集(假设令牌有效)?
在 AJAX 请求中发送 Cookie
我已经读过,如果网址在同一空间上,cookie会自动添加到请求中,对吧?Java 服务器位于同一域 (localhost:8080) 上,但 cookie 不可用 - 而不是像 'app.json' 这样的 url 上的请求。我认为跨域请求真的是特定于域的?
在 AJAX 请求中发送参数
因为 cookie 不是 avi,所以我考虑了"手动"向 ajax 请求添加参数的可能性。该应用程序将包含许多 AJAX 请求,这就是为什么我不想手动添加令牌 - 我试图覆盖 Ext.Ajax 的请求功能,但我失败了;-( :
(function() {
var originalRequest = Ext.data.Connection.prototype.request;
Ext.override(Ext.data.Connection, {
request : function(options) {
alert("Do sth... like add params");
return originalRequest.apply(this, options);
}
});
})();
错误:
未捕获的错误:[错误][Ext.data.Connection#request] 未指定 URL
我还尝试添加侦听器
Ext.Ajax.add({
listeners : {
beforerequest : function( conn, options, eOpts ){
alert("Do sth... like add params");
}
}
});
错误:
未捕获的类型错误:对象 [对象对象] 没有方法"添加"
关于如何添加令牌的任何想法?
或者有更好的方法来处理这些案件?
谢谢!
最后我成功地使用了:
function addAjaxInterceptor(context)
{
Ext.Ajax.on('beforerequest', function(conn, options, eOptions)
{
// add the param to options...
}, context);
}
从应用程序执行(=> addAjaxInterceptor(this))。
但我认为以下解决方案更适合我的情况:
Ext.Ajax._defaultHeaders = {
// params as json
};
(因为 Ext.Ajax 是一个单例对象,我不会为每个请求更改参数)
- 如何获取登录用户的twitter oAuth令牌
- 在每个 AJAX 请求(Sencha Touch 2)中发送用户详细信息(会话令牌)
- 打开图形:Java脚本:必须使用活动访问令牌来查询有关当前用户的信息
- 通过oauth令牌passport.js访问用户配置文件
- 必须使用活动访问令牌来查询有关具有打开图的当前用户的信息
- 谷歌'的用户令牌和授权代码
- AngularJS如何解码带有令牌和内部用户信息的jsonp响应
- 在JS web应用程序中,如何确保具有访问令牌的恶意用户无法刷新它
- 如何获取用户访问令牌,与图形 API 资源管理器中使用的令牌相同
- 仅使用访问令牌在节点中获取Google+用户配置文件
- ADAL JS 在调用 WebAPI 时不附加用户令牌
- 条带用户令牌问题
- 使用具有应用程序访问令牌的图形 API 搜索用户
- 从用户电子邮件创建哈希/令牌以进行电子邮件验证
- 当用户不想被记住时存储令牌的位置
- FB.logout() - 无访问令牌 - “以其他用户身份登录”
- FB PHP SDK 的 getAccessToken() 是检索用户身份验证令牌的可靠方法吗?
- 如果用户喜欢Facebook页面,则无需请求访问令牌
- 如何在会话令牌过期时将用户重定向到登录页面
- 如何在每个JsonP请求中发送用户令牌