【发布时间】:2021-10-21 16:26:38
【问题描述】:
我有一个有效的 nestjs 护照 JWT 策略,它返回一个 401 未经授权的无效或丢失承载令牌,但是,它没有设置响应标头 WWW-Authenticate 标头,我需要为期望的客户端库执行此操作标题中的那个
在我的 AuthModule 中我是这样注册的:
JwtModule.register({
secret: jwtConstants.secret,
signOptions: { expiresIn: '1m' }
})
我还将 JWT 策略描述如下:
import { ExtractJwt, Strategy } from 'passport-jwt';
import { jwtConstants } from './constants';
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor() {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
ignoreExpiration: false,
secretOrKey: jwtConstants.secret,
});
}
validate(payload: {
sub: string;
email: string;
}): { userId: string; email: string } {
return {
userId: payload.sub,
email: payload.email
};
}
}
如何设置 WWW-Authenticate 标头,仅在策略失败/返回 401 的情况下?
【问题讨论】: