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。基本上,这将为您提供一些方法来处理您的会话(invalidateSession
、authenticate
、restoreSession
等)。
对于验证器创建,请查看 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'
},
也在配置环境中。
Ember 应用正在使用 adfs 登录。 当成功登录时,adfs 将使用路由和查询参数重定向到 ember 网络应用程序。这些查询参数包含
access_token
refresh_token
user_id
scope
我需要使用这些凭据数据更新 ember 身份验证的会话。我怎样才能做到这一点?
您将需要 authenticate
与您进行会话 params。
为了能够验证您的会话,您需要创建一个 authenticator。基本上,这将为您提供一些方法来处理您的会话(invalidateSession
、authenticate
、restoreSession
等)。
对于验证器创建,请查看 http://ember-simple-auth.com/api/classes/BaseAuthenticator.html
它看起来像这样 https://jsfiddle.net/e7nzoa6y/ 但这不是唯一的,你必须用你的端点和东西自定义它
然后,一旦您有了身份验证器,请在以下位置查看文档 http://ember-simple-auth.com/api/classes/BaseAuthenticator.html
在您的控制器中,注入 session
服务后,
您将能够使用类似于
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' },
也在配置环境中。