我有一个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);
})
在浏览器控制台中出现“未定义函数”错误,但不确定是否与此问题有关。