Ember.js在RESTAdapter头中动态设置REST身份验证令牌
这篇文章()是我编写代码的指南: 我的授权REST成功返回令牌。我直接使用AJAX,而不是通过ember数据,因为这只是登录和获取授权令牌(embercast指南) 这是Chrome网络信息和登录后受保护的主页。将打印授权令牌。(这只是我的余烬应用程序学习和测试) 正如您在AJAX代码中所看到的,这里是每次用户登录时将auth令牌动态放入RESTAdapter头中的属性设置Ember.js在RESTAdapter头中动态设置REST身份验证令牌,ember.js,ember-data,Ember.js,Ember Data,这篇文章()是我编写代码的指南: 我的授权REST成功返回令牌。我直接使用AJAX,而不是通过ember数据,因为这只是登录和获取授权令牌(embercast指南) 这是Chrome网络信息和登录后受保护的主页。将打印授权令牌。(这只是我的余烬应用程序学习和测试) 正如您在AJAX代码中所看到的,这里是每次用户登录时将auth令牌动态放入RESTAdapter头中的属性设置 App.set('authToken', response.token); 这是RESTAdapter代码: App
App.set('authToken', response.token);
这是RESTAdapter代码:
App.ApplicationAdapter = DS.RESTAdapter.extend({
namespace: 'emberauthslimv3/api',
headers: {
'AUTH-TOKEN': function() {
return {
token : this.get('App.authToken') || localStorage.getItem('token')
}
}.property('App.authToken')
}
});
我已经尝试了各种组合的头设置,相信我,我这样做了大约2天了,从来没有成功地把令牌放入头中
当我查看chrome网络信息时,我得到的标题是
AUTH-TOKEN:[object Object]
感谢您的帮助/指点:D
更新
在测试了各种组合后仍然失败,我放弃了,只使用了最简单的hack,ajaxler哈哈。至少它是有效的:
if (response.success) {
Ember.$.ajaxPrefilter(function( options, oriOptions, jqXHR ) {
jqXHR.setRequestHeader("AUTH-TOKEN", response.token);
});
self.transitionToRoute('/');
}
首先,当你有余烬文档的时候,你有一个错误的参考链接。问题是ApplicationAdapter中的头实现。您将返回具有每个标头属性的对象
App.ApplicationAdapter = DS.RESTAdapter.extend({
headers: function() {
return {
"AUTH-TOKEN": Ember.get('App.authToken') || localStorage.getItem('token')
};
}.property().volatile()
});
顺便说一句,这里是链接 首先,当您有此的余烬文档时,您使用了一个错误的参考链接。问题是ApplicationAdapter中的头实现。您将返回具有每个标头属性的对象
App.ApplicationAdapter = DS.RESTAdapter.extend({
headers: function() {
return {
"AUTH-TOKEN": Ember.get('App.authToken') || localStorage.getItem('token')
};
}.property().volatile()
});
顺便说一句,这里是链接 使用您的答案,AUTH-TOKEN甚至没有插入到标题中。使用更新的答案,标题中有AUTH-TOKEN,但内容仍然相同:AUTH-TOKEN:[对象对象]我放弃哈哈,所以现在我只使用余烬。$.ajaxPrefilter()。我在这里实现了它,它工作正常,但我发现了一个问题..如果我实现了一个特定的模型适配器作为rest,并且没有传递头信息,因为实现了ApplicationAdapter(使用这些信息),那么模型rest调用没有这些头…我注意到您使用的是ember cli,酷:D.我自己刚开始使用它,将在Restadapter中重试动态标题设置使用您的答案,AUTH-TOKEN甚至没有插入标题。使用您更新的答案,标题中有AUTH-TOKEN,但内容仍然相同:AUTH-TOKEN:[对象对象]我放弃了哈哈,现在我只使用余烬。$.ajaxPrefilter()。我在这里实现了它,它工作正常,但我发现了一个问题..如果我实现了一个特定的模型适配器作为rest,并且没有传递头信息,因为实现了ApplicationAdapter(使用这些信息),那么模型rest调用没有这些头…我注意到您使用的是ember cli,酷:D。我自己刚开始使用它,将在RestaAdapter中再次尝试动态标题设置