使用Ember.SimpleAuth和Ember-CLI编写自定义身份验证器时,为了在登录时建立用户,需要返回自定义身份验证器的身份验证方法到底是什么?以下是目前存在的身份验证器。我们正在使用phalcon rest api作为后端,所以最终看起来这个方法需要点击该URL并在服务器端验证用户,但是服务器应该返回什么才能使ember.simpleauth做到这一点需要做什么?
import Ember from "ember";
import App from '../app';
import Base from "simple-auth/authenticators/base";
export default Base.extend({
tokenEndpoint: 'login',
restore: function(data) {
console.log('ran resotre');
},
authenticate: function(credentials) {
alert(credentials.identification);
alert(credentials.password);
},
invalidate: function() {
console.log('ran invalidate');
}
});
答案 0 :(得分:0)
authenticate
需要返回一个承诺。在该方法中,需要解决或拒绝该承诺。已解决的承诺将表示成功的身份验证,而被拒绝的承诺将导致身份验证失败。以下是我构建快速authenticate
函数的方法。
authenticate: function (credentials, options) {
return new Ember.RSVP.Promise(function (resolve, reject) {
var loginPromise = Ember.$.post(<token url goes here>, {
username: credentials.identification,
password: credentials.password
});
loginPromise.then(function (data) {
resolve({
token: data.token,
userData: data.user
});
}, function (error) {
reject(error);
});
});
}