Aurelia 身份验证:如何获取用户 ID
Aurelia authentication: How to obtain the user id
我正在新项目中使用 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()
函数获得)。
您可以在 NavBar
的 attached
回调中调用 getTokenPayload
(您可能希望调用 isAuthenticated
首先检查用户是否已通过身份验证)。将 NavBar
VM 上的 属性 设置为令牌负载,然后使用数据绑定绑定到用户 ID 属性。
然后,在 NavBar
附加回调中设置一个 EventAggregator
订阅以订阅正确的 auth
事件(可能 'auth:authenticate'
)并调用 getTokenPayload
在该订阅的回调中,然后设置 VM 属性。如果授权信息发生变化,这将确保 属性 得到更新。
您将要订阅 'auth:logout'
事件并取消设置上面设置的 VM 属性。也在 attached
回调中设置此订阅。
最后,确保在 NavBar
VM 的 detached
回调中处理这些订阅。
我正在新项目中使用 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()
函数获得)。
您可以在 NavBar
的 attached
回调中调用 getTokenPayload
(您可能希望调用 isAuthenticated
首先检查用户是否已通过身份验证)。将 NavBar
VM 上的 属性 设置为令牌负载,然后使用数据绑定绑定到用户 ID 属性。
然后,在 NavBar
附加回调中设置一个 EventAggregator
订阅以订阅正确的 auth
事件(可能 'auth:authenticate'
)并调用 getTokenPayload
在该订阅的回调中,然后设置 VM 属性。如果授权信息发生变化,这将确保 属性 得到更新。
您将要订阅 'auth:logout'
事件并取消设置上面设置的 VM 属性。也在 attached
回调中设置此订阅。
最后,确保在 NavBar
VM 的 detached
回调中处理这些订阅。