gpt4 book ai didi

ember.js - ember-simple-auth 不会为每个请求添加 Token

转载 作者:行者123 更新时间:2023-12-04 19:05:01 25 4
gpt4 key购买 nike

我的前端使用 Ember 1.8.1、Ember Data 1.0.0-beta.12、Handlebars 1.3.0、jQuery 1.11.1、Ember Simple Auth 0.7.2 和 Ember Simple Auth Devise 0.7.2。我的后端由 Rails、Grape 和 Devise 支持。

现在我正在尝试构建一个简单的身份验证。登录效果很好:Ember 应用程序将登录凭据发送到我的 Rails API 并获取访问 token 。 token 被写入 localStorage 并且重新加载页面工作正常。但据我了解 Ember Simple Auth ( see this demo ),所有 future 的 AJAX 请求都将使用此 token 执行 Authorization标题 - 但事实并非如此。

我是否必须设置 ajaxPrefilter由我自己还是 Ember Simple Auth 为我做这件事并且我的代码/Ember Simple Auth 中存在一些错误?

更新 1

我只是玩了一些 console.log调试。看来authorize函数不会被解雇。除了 authorize 之外,所有其他功能都可以成功记录。 .

更新 2

问题已解决:刚刚忘记设置 crossOriginWhitelist .

enter image description here

最佳答案

从 ESA 1.0 开始, token 不会自动添加到每个请求中。

如果您使用的是 OAuth2 授权器,那么要向 Ember 数据请求添加授权信息,请执行以下操作:

// app/adapters/application.js
import DS from 'ember-data';
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';

export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
authorizer: 'authorizer:some'
});

如果您还希望进行手动 JQuery 调用,那么类似这样的事情
this.get('session').authorize('authorizer:oauth2', (headerName, headerValue) => {
Ember.$.ajax({
url: myUrl,
beforeSend: function(xhr) {
xhr.setRequestHeader(headerName, headerValue);
},
method: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify({
// stuff
})
});
});

然后确保将授权信息添加到 header 中。

以上来自 https://github.com/simplabs/ember-simple-auth 的主要自述文件,以及 http://ember-simple-auth.com/api/ 处的 api 文档

关于ember.js - ember-simple-auth 不会为每个请求添加 Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com