用graphql实现ember-simple-auth身份验证是正确的方法吗?

时间:2019-08-19 07:12:37

标签: ember.js graphql apollo-client ember-simple-auth

我有一个graphql请求。该请求正在运行,并且它为特定用户返回令牌。但是我不确定如何在ember-simple-auth及其会话中使用该令牌。我只用了这个:this.set(“ session.isAuthenticated”,true)。使用它,似乎应用程序根本不需要使用身份验证器。  我不确定这个决定,并想问一下在这种情况下(当我通过graphql请求获得令牌而无需使用身份验证器时)使用ember-simple-auth的更好方法。  我也想问我是否可以这样保存令牌:this.set(“ session.token”,token),还是有一个“惯用的”(内置)解决方案?

我尝试以不同的方式使用身份验证器,但是它不起作用。据我了解,它应该在后端发送POST请求,但是由于已经有一个graphql请求,可能意味着应用程序不需要身份验证器,因此仅需要会话服务。这个决定有什么缺点吗?

我的controllers文件夹中的login.js文件如下所示:

    actions: {
        authenticate() {
            let username = this.get('email');
            let password = this.get('password');
            let hash = {username: username, password: password };

            let controller = this;
            this.get('apollo').mutate({mutation: Mutation.TOKEN_AUTH, variables: hash})
            .then(function(result) {
                controller.set('session.isAuthenticated', true);
                console.log('session.isAuthenticated: ', controller.get('session.isAuthenticated'));
            })
            .catch(function(reason) {
                console.log('Error: ', reason);
            })

在浏览器控制台中出现“未定义函数”错误,但不确定是否与此问题有关。

0 个答案:

没有答案