Skip to content

magplus/magplus-angular

Repository files navigation

Angular 13 Login and Registration with JWT and Web API example

Build Angular 13 Token based Authentication & Authorization Application with Web Api and JWT (including HttpInterceptor, Router & Form Validation).

  • JWT Authentication Flow for User Registration (Signup) & User Login
  • Project Structure with HttpInterceptor, Router
  • How to implement HttpInterceptor
  • Creating Login, Signup Components with Form Validation
  • Angular Components for accessing protected Resources
  • How to add a dynamic Navigation Bar to Angular App
  • Working with Browser Session Storage

Flow for User Registration and User Login

For JWT – Token based Authentication with Web API, we’re gonna call 2 endpoints:

  • POST api/auth/signup for User Registration
  • POST api/auth/signin for User Login

You can take a look at following flow to have an overview of Requests and Responses that Angular 13 JWT Authentication & Authorization Client will make or receive.

angular-13-login-registration-flow

Angular JWT App Diagram with Router and HttpInterceptor

angular-13-login-registration-overview

For more detail, please visit the tutorial:

Angular Login and Registration with JWT and Web API example

With Spring Boot back-end

Angular + Spring Boot: JWT Authentication and Authorization example

With Node.js Express back-end

Angular + Node.js Express: JWT Authentication and Authorization example

Depending on the backend you choose, you need to open app/_helpers/auth.interceptor.js, modify the code like this:

...

// const TOKEN_HEADER_KEY = 'Authorization'; // for Spring Boot back-end
const TOKEN_HEADER_KEY = 'x-access-token';   // for Node.js Express back-end

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  ...

  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    ...
    if (token != null) {
      // for Spring Boot back-end
      // authReq = req.clone({ headers: req.headers.set(TOKEN_HEADER_KEY, 'Bearer ' + token) });

      // for Node.js Express back-end
      authReq = req.clone({ headers: req.headers.set(TOKEN_HEADER_KEY, token) });
    }
    return next.handle(authReq);
  }
}

...

Run ng serve --port 8081 for a dev server. Navigate to http://localhost:8081/.

More practice

Angular JWT Refresh Token example with Http Interceptor

Angular CRUD Application example with Web API

Angular Pagination example | ngx-pagination

Angular File upload example with Progress bar

Fullstack with Node:

Angular + Node Express + MySQL example

Angular + Node Express + PostgreSQL example

Angular + Node Express + MongoDB example

Angular + Node Express: File upload example

Fullstack with Spring Boot:

Angular + Spring Boot + H2 Embedded Database example

Angular + Spring Boot + MySQL example

Angular + Spring Boot + PostgreSQL example

Angular + Spring Boot + MongoDB example

Angular + Spring Boot: File upload example

Fullstack with Django:

Angular + Django example

Serverless with Firebase:

Angular Firebase CRUD with Realtime DataBase | AngularFireDatabase

Angular Firestore CRUD example with AngularFireStore

Angular Firebase Storage: File Upload/Display/Delete example

Integration (run back-end & front-end on same server/port)

How to integrate Angular with Node Restful Services

How to Integrate Angular with Spring Boot Rest API

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •