作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一个自定义授权方和身份验证方,以使用 ember-simple-auth 库执行 HMAC token 签名,每个部分单独工作时效果很好,但在一起时会出现问题。
如果我禁用授权者,验证者可以正常启动 session ,并且一旦存在现有 session ,授权者就会正确授权对 api 的所有请求,但是当两者都在运行时,授权者会破坏初始登录请求。
有没有办法跳过身份验证请求的授权者,或者暂时禁用正在修改请求的ajaxPrefilter
?或者有更好的方法来解决这个问题吗?
验证器:
var CustomAuthenticator = Base.extend({
authenticate: function(credentials) {
var data = {
user: {
email: credentials.identification,
password: credentials.password
}
};
return Ember.$.post(MyApplicationENV.API_URL + '/users/login', data).then(function(response, statusText, xhr) {
if (xhr.status === 201) {
return response;
}
}).fail(function() {
console.warn('login FAILED!');
});
},...
授权人:
var CustomAuthorizer = Base.extend({
authorize: function(jqXHR, requestOptions) {
var timestamp = parseInt((new Date().getTime() / 1000), 10);
var hashedToken = window.md5(timestamp + ':' + this.get('session.authentication_token'));
var data = 'user_token=' + hashedToken;
data += '&user_email=' + this.get('session.email');
data += '×tamp=' + timestamp;
requestOptions.data = data;
}
});
最佳答案
您应该在授权者中检查 session.get('isAuthenticated') ,并且仅在为真时才授权该请求。这样它就不会授权初始登录请求。
关于jquery - 如何有选择地禁用 ember-simple-auth 授权者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25690940/
我是一名优秀的程序员,十分优秀!