私はこれを数日間解決しようとしています。 私はAuth0のドキュメントのチュートリアルに従いました。急行-JWTでトークンをデコードした後トークンを解読してもユーザープロフィールはありません
:
export let headerJWTCheck = expressJwt({
secret: '*************************',
audience: '******************************'
});
req.userの内容は、私がAPIでロールの制限のために必要なプロファイルと役割を持っていません。
代わりにコンテンツの形式である:フロントエンドで
{ iss: 'https://******.eu.auth0.com/',
sub: 'google-oauth2|***********************',
aud: '********************',
exp: **************,
iat: **************}
私はすでに私が必要とするユーザプロファイル情報を取得し、私はそれを超えて進行することはできません。
私は役割をrestricする機能を使用しています:
export function requireRole(role: string) {
return function (req, res, next) {
console.log(req.user);
var appMetadata = req.user.profile._json.app_metadata || {};
var roles = appMetadata.roles || [];
if (roles.indexOf(role) != -1) {
next();
} else {
res.redirect('/unauthorized');
}
}
しかしreq.user.profileは常に定義されていません。
私は主Expressアプリケーション定義において:
app.use(cookieParser());
app.use(session({
.................
}));
configurePassport();
app.use(passport.initialize());
app.use(passport.session());
私を正しい方向に向けてくれてありがとう。 :) –