Авторизация токена на предъявителя? - PullRequest
0 голосов
/ 09 января 2019

Я использую авторизацию на предъявителя, но не знаю, как отправить аутентификацию заголовка в представление.

Auth.guard:

import { Injectable, CanActivate, ExecutionContext, HttpException, HttpStatus } from '@nestjs/common';
import * as jwt from 'jsonwebtoken';

@Injectable()
export class AuthGuard implements CanActivate {
  async canActivate(context: ExecutionContext): Promise<boolean> {
    const request = context.switchToHttp().getRequest();
    if(!request.headers.authorization){
    return false;
}
request.user = await this.validateToken(request.headers.authorization);    
return true;
}
  async validateToken(auth: string){
    if(auth.split(' ')[0] !== 'Bearer'){
        throw new HttpException('Invalid token', HttpStatus.FORBIDDEN);
    }const token= auth.split(' ')[1];
    try{
        const decoded = jwt.verify(token, process.env.SECRET);
        return decoded;
    }catch(err){
        const message = 'Token error: ' + (err.message || err.name);
        throw new HttpException(message, HttpStatus.FORBIDDEN);
    }
  }
}

Github репозиторий

...