Angular 7授权无法正常工作

问题描述 投票:0回答:1

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

“此请求已被拒绝授权。”

下面是拦截器代码。

@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

所以我可以从Postman发出请求并返回正确的数据。

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

错误:未捕获(在承诺中):HttpErrorResponse:{“headers”:{“normalizedNames”:{},“lazyUpdate”:null},“status”:401,“statusText”:“未经授权”,“url”:“ http://localhost/Invoicing/api/users/settings/getTableColumns/leads-list“,”ok“:false,”name“:”HttpErrorResponse“,”message“:”http://localhost/Invoicing/api/users/settings/getTableColumns/leads-list的Http失败响应:401 Unauthorized“,”error“:{”message“:”此请求的授权被拒绝。 “}} at resolvePromise(zone.js:814)at zonePrise(zone.js:771)at zone.js:873 at ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask( zone.js:421)位于Zone.push的ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask(zone.js:420)的Object.onInvokeTask(core.js:16147)在ZoneTask.push ../ node_modules / zone.js / dist / zone的drainMicroTaskQueue(zone.js:595)中的../node_modules/zone.js/dist/zone.js.Zone.runTask(zone.js:188) invokeTask中的.js.ZoneTask.invokeTask [as invoke](zone.js:500)(zone.js:1540)

这里有什么我想念的吗?

oauth angular7
1个回答
0
投票

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

我希望这有助于其他人。

© www.soinside.com 2019 - 2024. All rights reserved.