Ember 简单验证当验证数据可用时如何更新

Ember simple auth how to update when authenticate data is avaiable

Ember 应用正在使用 adfs 登录。 当成功登录时,adfs 将使用路由和查询参数重定向到 ember 网络应用程序。这些查询参数包含

access_token
refresh_token
user_id
scope

我需要使用这些凭据数据更新 ember 身份验证的会话。我怎样才能做到这一点?

您将需要 authenticate 与您进行会话 params
为了能够验证您的会话,您需要创建一个 authenticator。基本上,这将为您提供一些方法来处理您的会话(invalidateSessionauthenticaterestoreSession 等)。
对于验证器创建,请查看 http://ember-simple-auth.com/api/classes/BaseAuthenticator.html 它看起来像这样 https://jsfiddle.net/e7nzoa6y/ 但这不是唯一的,你必须用你的端点和东西自定义它

然后,一旦您有了身份验证器,请在以下位置查看文档 http://ember-simple-auth.com/api/classes/BaseAuthenticator.html

在您的控制器中,注入 session 服务后, 您将能够使用类似于

的内容来调用函数 authenticate
this.session.authenticate(
  'authenticator:YOUR_AUTHENTICATOR', queryParams
);

djamel 你的答案对我有用,我已经使用你的示例修改了代码,如下所示

import Base from 'ember-simple-auth/authenticators/base';
import {
  isEmpty
} from '@ember/utils';
export default Base.extend({
  authenticate(data) {
     return new Promise((resolve, reject) => {

       if(data.access_token!=null){
       resolve({

                     access_token: data.access_token,
                     id: data.id,
                     agreement:data.agreement
                   });
   }else{
    reject();
   }  })

  },

 restore(data) {
   console.log(data)
    return new Promise((resolve, reject) => {

      if (!isEmpty(data.access_token)) {
        resolve(data);
      } else {
        reject();
      }    });
  }
});

除此之外我还得补充

ENV['ember-simple-auth'] = { routeAfterAuthentication: 'authenticated.index' },

也在配置环境中。