Nest.js Auth0 AccessToken(payload )に email を含める

updated Oct 3, 2021created Oct 3, 2021

Auth0ダッシュボードから、「Rules」→「Add email to access token」を選択

Auth0 add email accessToken

そのままでOK。これでaccessTokenにemailが含まれる。

スクリーンショット 2021-10-03 19.19.04

Nest.jsとpassport-jwtを使用してるので、payloadから取得できる。

js
validate(payload: unknown): unknown { console.log("payload", payload.user); return payload; }

Controllerの場合は、

js
@UseGuards(AuthGuard('jwt')) @Get('private') async private(@Request() req) { return { message: '✅ Private API Test!', payload: req.user }; }
bash
{"message":"✅ Private API Test!","payload":{"https://example.com/email":"xxx@gmail.com","iss":"https://xxx.jp.auth0.com/","sub":"google-oauth2|xxx","aud":["http://localhost:8080","https://xxx.jp.auth0.com/userinfo"],"iat":xxx,"exp":xxx,"azp":"xxxx","scope":"openid profile email"}}

参考

How can Node (express) API lookup email address from token? - Auth0 Community