我在新项目中使用aurelia-auth库。 到目前为止,一切似乎都是正确的,但我无法在导航栏上显示用户信息。
该库提供了一些似乎提供此类信息的功能,例如getTokenPayload()
。我试图访问此信息,以便在导航栏中显示用户ID或用户名。
我已经看到其他属性(例如isAuthenticated()
)正在以这种方式访问:
nav-bar.html:
<ul if.bind="isAuthenticated" class="nav navbar-nav navbar-right">
<li><a href="/#/logout">Logout</a></li>
</ul>
nav-bar.js:
export class NavBar {
...
get isAuthenticated() {
return this.auth.isAuthenticated();
};
一旦用户通过身份验证,我无法弄清楚如何在导航栏上显示用户ID(通过getTokenPayload()
功能获得)。
答案 0 :(得分:4)
您可以在 array_search(strtolower($search), array_map('strtolower', $array));
的{{1}}回调中致电getTokenPayload
(您可能需要致电attached
以首先检查用户是否经过身份验证)。将NavBar
VM上的属性设置为令牌有效内容,然后使用数据绑定绑定到用户ID属性。
然后,在isAuthenticated
附加回调中设置NavBar
订阅,以订阅正确的EventAggregator
事件(可能为NavBar
),然后致电auth
该订阅的回调然后设置VM属性。如果身份验证信息发生更改,这将确保属性更新。
您将要订阅'auth:authenticate'
事件并取消设置上面设置的VM属性。也可以在getTokenPayload
回调中设置此订阅。
最后,请确保在'auth:logout'
VM的attached
回调中处理这些订阅。