jwt - 用jwt显示和隐藏

  显示原文与译文双语对照的内容
0 0

我正在使用JWT管理身份验证。 我正在试图使用in显示/隐藏我的导航中的登录和注销按钮。 它没有工作。标记正在存储,但是我无法将显示/隐藏作为工作。

服务:


angular.module('psJwtApp')
.factory('authToken', function ($window) {
 var storage = $window.localStorage;
 var cachedToken;
 var userToken = 'userToken';
 var isAuthenticated = false;

 var authToken = {
 setToken: function (token) {
 cachedToken = token;
 storage.setItem(userToken, token);
 isAuthenticated = true;
 },
 getToken: function () {
 if(!cachedToken)
 cachedToken = storage.getItem(userToken);

 return cachedToken;
 },
 isAuthenticated: function () {
 return!!authToken.getToken();
 },
 removeToken: function () {
 cachedToken = null;
 storage.removeItem(userToken);
 isAuthenticated = false;
 }
 };

 return authToken;
});

控制器:


angular.module('psJwtApp')
.controller('HeaderCtrl', function ($scope, authToken) {
 $scope.isAuthenticated = authToken.isAuthenticated();
});

html :


 <div ng-controller="HeaderCtrl" class="header">
 <ul class="nav nav-pills pull-right">
 <li ui-sref-active="active">
 <a ui-sref="main">Home</a>
 </li>
 <li ui-sref-active="active">
 <a ui-sref="jobs">Jobs</a>
 </li>
 <li ng-hide="isAuthenticated()" ui-sref-active="active">
 <a ui-sref="login">Log In</a>
 </li>
 <li ng-show="isAuthenticated()" ui-sref-active="active">
 <a ui-sref="logout">Logout</a>
 </li>
 </ul>
 <h3 class="text-muted">psJwt</h3>
</div>

时间: 原作者:

0 0

你检查过 $scope.isAuthenticated?的类型了? 我怀疑它已经解析为一个布尔值,而不是函数。 更新你的html以检查布尔值。


<li ng-show="!isAuthenticated" ui-sref-active="active">
 <a ui-sref="login">Log In</a>
</li>
<li ng-show="isAuthenticated" ui-sref-active="active">
 <a ui-sref="logout">Logout</a>
</li>

原作者:
...