Ember Auth Custom Authenticator

时间:2014-11-10 15:33:12

标签: ember.js ember-cli ember-simple-auth

使用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');
    }
});

1 个答案:

答案 0 :(得分:0)

我会阅读Ember Simple Auth - API

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);
        });
    });
}