我正在使用nebular
和laravel
APINbPasswordAuthStrategy
和NbAuthJWTToken
类,如下所示:
NbAuthModule.forRoot({
strategies: [
NbPasswordAuthStrategy.setup({
name: 'email',
token: {
class: NbAuthJWTToken,
key: 'data.user.token',
},
baseEndpoint: BASE_URL + 'users/',
login: {
endpoint: 'login',
method: 'post',
redirect: {
success: '/pages/dashboard',
failure: null, // stay on the same page
},
},
}),
],
forms: {
login: {
rememberMe: false,
},
validation: {
password: {
minLength: 6,
},
},
},
}),
端点响应如下login
:
{
"data": {
"user": {
"id": 114683,
"first_name": "mhd",
"last_name": "sultan",
...
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYXBpL3VzZXJzL2xvZ2luIiwiaWF0IjoxNTcyMzQ2NDMzLCJleHAiOjE2NjY5NTQ0MzMsIm5iZiI6MTU3MjM0NjQzMywianRpIjoiNmxGaDNwbWd0RVpoa0FPRSIsInN1YiI6MTE0NjgzLCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIn0.Eg4_1cXngafs1V80jqygvJDR0vZN5HuHyXV9PTeUkzA",
}
}}
在UserService
我订阅onTokenChange时:
constructor(private authService: NbAuthService) {
this.authService.onTokenChange()
.subscribe((token: NbAuthJWTToken) => {
console.log(token);
console.log(token.getPayload());
if (token.isValid()) {
this.user = token.getPayload(); // receive payload from token and assign it to our `user` variable
}
});}
我正在正确获取令牌, 但我正在获取包含 JWT 令牌属性的有效负载
我应该怎么做才能得到data.user
对象?