我的 Nestjs 应用程序只能让 Bearer 令牌保持活跃 POSTMAN。当我得到谷歌身份验证数据返回时,它可以工作。这个捕获是 api/auth/google/redirect/?.....
但是如果我通过键入该网址转到 EDGE 或 CHROME 上的 api/auth/google/profile,
401 { statusCode: 401, message: 'Unauthorized' } 错误返回。它说没有身份验证令牌。
这是我的控制器的代码。此代码正在获取用户的数据。
@UseGuards(AuthGuard('jwt'))
@Get('profile')
getProfile(@CurrentUser()user : User) {
console.log(user.email + " from controller")
return user;
}
这是我的控制器的代码,此方法用于从 google 获取用户并设置授权令牌。
@Get('/google/redirect')
@UseGuards(AuthGuard('google'))
async googleAuthRedirect(
@CurrentUser()user : User,
@Res({passthrough: true})response : Response,
) {
console.log(user + "data from user decorator");
const refreshToken = this
.authService
.getJwtRefreshToken(user.id);
response.cookie('token', refreshToken, {
httpOnly: true,
path: '/',
sameSite: 'lax',
maxAge: 3600000
});
response.setHeader('Authorization', `Bearer ${refreshToken}`);
response.setHeader('Access-Control-Allow-Origin', 'http://localhost:4000');
response.setHeader('Access-Control-Allow-Credentials', 'true');
return {user,refreshToken};
}
没有身份验证令牌错误返回。如何将不记名令牌保留到另一个站点?
如果我使用邮递员,我可以像这样保留不记名令牌。
我的仓库在这里->> https://github.com/sksmsWKd/meta-test
只有邮递员可以访问/profile。