Angular 7授权无法正常工作

时间:2019-04-19 11:04:16

标签: oauth angular7

我正在实现身份验证,我正在使用拦截器来执行此操作。但是,我遇到了错误。

  

“该请求的授权已被拒绝。”

下面是拦截器代码。

@Injectable()
export class AuthenticationInterceptor implements HttpInterceptor{


    constructor(@Inject('IAuthService') private authService:IAuthService) {          
    }

    intercept(req: HttpRequest<any>, next: HttpHandler):


    Observable<HttpEvent<any>> {
        if(this.authService.isLoggedIn){
            req = req.clone({
                headers: req.headers.set('Authorization', `Bearer ${this.authService.token}`)
              });
        }
        return next.handle(req);
    }
}

这在请求中显示它正在将令牌添加到 Request Headers

所以我可以向邮递员发出请求,并返回正确的数据。

这样您就可以看到完整的错误:

  

ERROR错误:未捕获(承诺):HttpErrorResponse:   {“ headers”:{“ normalizedNames”:{},“ lazyUpdate”:null},“ status”:401,“ statusText”:“未经授权”,“ url”:“ http://localhost/Invoicing/api/users/settings/getTableColumns/leads-list”,“确定”: false,“名称”:“ HttpErrorResponse”,“消息”:“ Http   的故障响应   http://localhost/Invoicing/api/users/settings/getTableColumns/leads-list:   401未经授权”,“错误”:{“消息”:“授权已被拒绝   为此请求。“}}       在resolvePromise(zone.js:814)       在resolvePromise(zone.js:771)       在zone.js:873       在ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask   (zone.js:421)       在Object.onInvokeTask(core.js:16147)       在ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask   (zone.js:420)       在Zone.push ../ node_modules / zone.js / dist / zone.js.Zone.runTask(zone.js:188)       在rainMicroTaskQueue(zone.js:595)       在ZoneTask.push ../ node_modules / zone.js / dist / zone.js.ZoneTask.invokeTask中   [作为调用](zone.js:500)       在invokeTask(zone.js:1540)

我这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

我已解决了该问题,即我已将拦截器添加到app.module.ts,并且需要将其添加到使用该服务的服务所在的每个模块中。

希望这对其他人有帮助。