这是我的工作流程。
?token=
查询参数将用户重定向到Ember。 / li>
我想做的是将其工作到自定义ember-simple-auth
authenticator
(和authorizer
?)中,以便利用会话和Authorization标头的优美之处在那里。
当前,我破解了一个身份验证器,仅将其重定向到身份提供者。 API工作流程的其余部分正在运行。我正在回程的路由中捕获令牌,并通过对数据库的调用填充User资源。但是我觉得我正在走错路(而且很长)。
有什么想法吗?这是ember-simple-auth-token
专为设计的东西吗?
答案 0 :(得分:0)
我在上个月解决了这个问题。我所做的是
这是自定义身份验证器类
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({
scope: data.scope,
access_token: data.access_token,
});
}else{
reject();
} })
},
restore(data) {
return new Promise((resolve, reject) => {
if (!isEmpty(data.access_token)) {
resolve(data);
} else {
reject();
}
});
},
});
我已经创建了一个在前端处理的路由,以获取由后端发送的令牌。因此路由通过get参数获取sso令牌(导致后端无法对emberapp进行发布),因此当路由触发时,我在route中捕获了该参数并再次执行post方法来验证令牌。
我们正在使用Redis生成的令牌。因此,由于这个问题是关于emberjs的,因此我在前端说明了支持您的答案。我也说明了这个概念,以说明您需要做什么。因此,您有责任去挖掘并找到更多有关它的信息。例如如何创建临时JWT令牌,如何对其进行验证,如何使用adfs的声明将您重定向到后端等。我想我为您提出的第一个问题提供了答案 “如何使用外部重定向实施Ember简单身份验证”