我正在使用 Ember.js 2.3(和 Ember-Data 2.3)。我正在使用 Auth0 设置一个简单的用户身份验证过程。还没有什么花哨的,只是根据以下方式安装了 Auth0:
https://auth0.com/docs/quickstart/spa/ember2js/no-api
现在,我的设置与此处给出的项目几乎完全相同。但是,似乎我只能从 application.hbs 访问会话,而不能访问任何其他模板。或者路线。或者别的什么。
所以这个车把片段:
{{#if session.isAuthenticated}}
{{session.data.authenticated.profile.name}}
{{else}}
NOPE
{{/if}}
这适用于 application.hbs,但不适用于其他地方。这对我来说没有意义。如果 Auth0 本身说 session.data 可以从任何模板访问,并且这样的车把片段甚至存在,那么一定是我遗漏了一些东西。我需要能够显示客户端的某些部分,并根据当前登录的用户(以及是否有人实际登录)限制某些操作,所有这些都包含在 session.data 对象中。
将这个对象传递给我要创建的每个组件似乎并不合适,我现在能想到的唯一获取这些数据的方法就是从 localStorage 中手动获取它。我也许可以将这个手动过程变成一个 mixin 并将它包含在任何地方,但在我尝试找到迂回解决方案之前,我想确保我不会在实现本身中遗漏一些东西。
除了 application.hbs 本身,我如何能够在整个应用程序中访问会话令牌?
编辑:根据评论更新问题。我的受保护路线如下所示:
import Ember from 'ember';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
});
不幸的是,我仍然无法获取会话数据。