【发布时间】:2021-02-09 20:54:58
【问题描述】:
我有一个前端应用程序(角度)。 我正在对 nestjs 后端进行休息调用。
这个休息调用需要一个不记名令牌。 我有来自谷歌的不记名令牌。
但是当我使用它时,我得到了未经授权。
据我了解,我需要获取 google 的密钥。 我读到我从 .well-known 获得了密钥,但我不知道这是哪里。
以下是我的护照策略,我遇到并尝试了一些变化。
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(
@InjectRepository(UserRepository)
private userRepository: UserRepository,
private configService: ConfigService){
super({
secretOrKeyProvider: passportJwtSecret({
cache: true,
rateLimit: true,
jwksRequestsPerMinute: 5,
jwksUri: '.well=known URI (I think)',
}),
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
issuer: 'https://accounts.google.com',
algorithms: ['RS256'],
});
}
async validate(payload) {
console.log(payload)
const { email } = payload;
const user = await this.userRepository.findOne({ email });
if(!user || !user.isActive) {
throw new UnauthorizedException();
}
return user;
}
}
请帮忙。
谢谢。
【问题讨论】:
标签: authentication jwt token nestjs google-authentication