我正在使用Ember CLI Ember Data Simple Auth . 验证器工作正常 . 但是当我正在使用Ember数据休息适配器 this.store.findAll("user");
进行Rest调用时,我的自定义授权器中的授权功能不会被调用 .
Rest API endpoints 位于其他域上,因此我将url添加到我的environment.js中的 crossOriginWhitelist
.
environment.js:
module.exports = function(environment) {
var ENV = {
// some configuration
};
ENV['simple-auth'] = {
crossOriginWhitelist: ['http://api.xxxx.com'],
authorizer: 'authorizer:xxxx',
routeAfterAuthentication: 'dashboard',
};
return ENV;
};
authorizer
import Ember from 'ember';
import Base from 'simple-auth/authorizers/base';
var XXXXAuthorizer = Base.extend({
authorize: function(jqXHR, requestOptions) {
// Some Code, gets not called, damn it :(
}
});
export default {
name: 'authorization',
before: 'simple-auth',
initialize: function(container) {
container.register('authorizer:xxxx', XXXXAuthorizer);
}
};
index.html
....
<script>
window.XXXXWebclientENV = {{ENV}};
window.ENV = window.MyAppENV;
window.EmberENV = window.XXXXWebclientENV.EmberENV;
</script>
<script>
window.XXXXWebclient = require('xxxx-webclient/app')['default'].create(XXXXWebclientENV.APP);
</script>
....
感谢帮助 :)
2 回答
我遇到了类似的问题 . 对我来说这是
crossOriginWhitelist
配置 .我这样设置:
看看我是否可以使它工作(我可以),然后我可以缩小它以确定我应该使用什么URL来强制执行限制(端口号和主机名等) .
Don't leave it like that though!
您应该确定哪个URL适用于白名单,并使用它 .
我面临同样的问题 . 我有相同的设置,但没有调用授权功能 . 您可以尝试在
crossOriginWhiteList url
中添加端口号 .我在新的初始化程序中添加
window.ENV = window.MyAppENV
行,它在simple-auth之前运行 . 您已将其添加到索引文件中,这可能是simple-auth无法读取您的配置的原因 .其他配置
routeAfterAuthentication: 'dashboard',
是否正常工作?如果没有那么这可能是原因 . 尝试添加新的初始化程序