Auth0 チームは、jwtHelper クラスを持つ「angular-jwt」と呼ばれるものを作成しました。このことは、サーバーで使用したシークレットなしでローカル JWT を正常にデコードします。どうしてそうなった?それらが安全でない場合、シークレットを使用して署名/暗号化するポイントは何ですか?
トークンを暗号化するサーバー上の機能 (「jsonwebtoken」を使用):
function createToken (user) {
return jwt.sign(_.omit(user, 'password'), config.secret, { expiresInMinutes: 60*5 });
}
クライアントからのコード:
angular
.module('sample.home', [
'ui.router',
'angular-storage',
'angular-jwt'
])
.config(function ($stateProvider) {
$stateProvider
.state('home', {
url: '/',
controller: 'HomeCtrl',
templateUrl: 'modules/home/home.html',
data: { requiresLogin: true }
})
})
.controller('HomeCtrl', function homeController ($scope, $http, store, jwtHelper) {
$scope.jwt = store.get('jwt');
$scope.decodedJwt = $scope.jwt && jwtHelper.decodeToken($scope.jwt);
});
完全な例へのリンクは次のとおりです: http://github.com/auth0/ang...