AngularJSアプリケーションは、それを処理するNode.jsインスタンスとJWTを交換する必要があります。 Node.jsインスタンスには、AngularクライアントにJWTを返す/user
ルートがあります。 以下のコードを変更する必要があるため、1. AngularJSアプリケーションは、JWTをNode.jsインスタンスの/user
ルートに送り返すことができます。2.)Node.jsコードは、JWTを変数として分離することができます処理のために?AngularJSからNode.jsにJWTを送信
バックエンド/user
ルートを呼び出すための現在のAngularJSコードは次のとおりです。
$http.get('user').then(function(response) {
console.log('response is: ');
console.log(response);
if (response.data.token === 'anonymous') {
$rootScope.authenticated = false;
} else {
$rootScope.userJWT = response.data.token;
var payload = $rootScope.userJWT.split('.')[1];
payload = $window.atob(payload);
payload = JSON.parse(payload);
self.name = payload.name;
self.authorities = payload.authorities;
$rootScope.authenticated = true;
}
}, function() {
$rootScope.authenticated = false;
});
とバックエンド/user
ルートのNode.jsのコードは次のとおりです。
app.get('/user**', function(req, res) {
console.log("You Hit The User Route TOP");
//How do we get the JWT from req?
var user = getUserName(theJwt);
var token = getToken(user);
var jwtJSON = getUser(token);
if((jwtJSON["token"] == 'error') || jwtJSON["token"] == 'anonymous') {
res.sendStatus(500); // Return back that an error occurred
} else {
res.json(jwtJSON);
}
console.log("You Hit The User Route BOTTOM");
});
注意、Node.jsの例はvar jwt = require('jsonwebtoken');
を含み、処理方法の1つはのようにvar decoded = jwt.decode(token, {complete: true});
を使用してJWTをデコードします。
Satellizerのためのこのgithubのレポは完全な例があります。 ます。https://をgithub.com/sahat/satellizer/tree/master/examples –
@TaylorAckley I 'jsonwebtoken' APIを使いたいです。私はこれを非常にシンプルにして、自分のアプリを基本から構築できるようにしたいと思っています。答えはおそらく、AngularJS 'get( '/ user')'に 'Authorization header 'を追加する方法と、Node.js'/user'ルートの 'Authorization header'を小さな上記OPのコードスニペット。 – FirstOfMany