-1

I have created a login page, successfully logged in, and fetched an authorization-key, then stored it into local storage. Now, I want to pass the authorization-key in the URL, not in headers, to all requests made after login. How can I do that?

Makyen
  • 31,849
  • 12
  • 86
  • 121
StackUser
  • 418
  • 2
  • 7
  • 23

1 Answers1

1

I created a stackblitz as an example to use the interceptor to add some params

See https://stackblitz.com/edit/angular-jqs7wu

Edit: added relevant code

This is just a basic http request with 1 query param (QuestionService)

fetchQuestions(topic: string): Observable<any[]> {
    const params = new HttpParams().append('intitle', topic);

    return this.http.get<any[]>("https://api.stackexchange.com/2.2/search", { params });
  }

The Interceptor (QuestionInterceptor) adds some other params to the request before submitting it into network

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {    
    const params = req.params
      .append('pagesize', String(pagesize))
      .append('site', site)
      .append('order', order)
      .append('sort', sort); // append your auth key here instead of those params

    const cloneReq = req.clone({ params });

    return next.handle(cloneReq);
  }
MoxxiManagarm
  • 8,735
  • 3
  • 14
  • 43