因爲我需要50聲譽發表評論,這需要在這裏問,你有沒有訪問authfactory/authserverice從那裏獲取當前用戶?假設你有登錄?
然後在authFactory你可以有這樣的事情。
app.factory('authFactory', ['$http', '$window', function ($http, $window) {
var authFactory = {};
authFactory.logIn = function (user) {
return $http.post('/login', user).success(function (data) {
authFactory.saveToken(data.token);
});
};
authFactory.saveToken = function (token) {
$window.localStorage['appToken'] = token;
};
authFactory.getToken = function() {
return $window.localStorage['appToken'];
};
authFactory.logOut = function() {
$window.localStorage.removeItem('appToken');
};
authFactory.currentUser = function() {
if(authFactory.isLoggedIn()){
var token = authFactory.getToken();
var payload = JSON.parse($window.atob(token.split('.')[1]));
return payload.username; // or return payload.id ...../return payload
}
};
authFactory.isLoggedIn = function() {
var token = authFactory.getToken();
if(token){
var payload = JSON.parse($window.atob(token.split('.')[1]));
return payload.exp > Date.now()/1000;
} else {
return false;
}
};
return authFactory;
}]);
然後,您只需將其與控制器綁定即可訪問它。
app.controller('AnyCtrl', ['$scope', 'authFactory',
function ($scope, authFactory) {
$scope.currentUser = authFactory.currentUser;
}
]);
不應該是'author:user'嗎? – mic4ael
試過了,它不起作用。 –