Using Okta SKD with @angular/http

It seems that all examples are using @angular/common/http is there an example on how to use Okta SDK with older @angular/http?

The issue I am having is that I don’t want to change my methods to async/await and hence can’t execute await this.oktaAuth.getAccessToken();

I understand it is possible to extend http and implement “Interceptor” functionality but is there an example of how to do that with Okta SDK?

thanks

Try:

this.oktaAuth.getAccessToken().then(() => {
  // do something
});

auth-interceptor.ts

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';

import { AuthService } from 'auth';

import { LoggerService } from 'utils';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {

  constructor(private authService: AuthService,
              private logger: LoggerService) {

    this.logger.info('AuthInterceptor: constructor()');
  }

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

    const accessToken = this.authService.getAccessToken();

    if (accessToken) {

      this.logger.info('AuthInterceptor: intercept() Bearer ' + accessToken);

      const authReq = req.clone({ setHeaders: { Authorization: 'Bearer ' + accessToken } });
      return next.handle(authReq);
    }

    return next.handle(req);
  }

}

The Angular wrapper for @okta/okta-auth-js doesn’t support the Authorisation Code flow with PKCE so you will need to write your own wrapper for @okta/okta-auth-js.

For example: Angular Wrapper for Okta Auth JavaScript SDK

Auth Resources