• Stars
    star
    342
  • Rank 123,110 (Top 3 %)
  • Language
    C#
  • License
    MIT License
  • Created about 4 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ASP.NET Core + Angular JWT auth demo; integration tests; login, logout, refresh token, impersonation, authentication, authorization; run on Docker Compose.

JWT Auth Demo (Angular + ASP.NET Core / ASP.NET 5+)

Buy Me a Coffee at ko-fi.com

This repository demos an Angular SPA and an ASP.NET Core web API application using JWT auth, and an integration testing project for a set of actions including login, logout, refresh token, impersonation, authentication, and authorization.

Medium Articles

  1. JWT Auth in ASP.NET Core

    In this article, I will show you how to implement an ASP.NET Core web API application using JWT authentication and authorization.

  2. JWT Authentication in Angular

    In this article, we will build a simple app using Angular. We will implement an AuthService class to handle login, logout, and refresh token processes, as well as operations for localStorage key-value pairs. We will create a JwtInterceptor class to add JWT Bearer token to the HTTP request headers, and an UnauthorizedInterceptor class to redirect the user to the login page if an HTTP status code 401 is received. We will use an AuthGuard to prevent unauthenticated user from visiting the application pages.

Demo

jwt demo

Solution Structure

This repository includes two applications: an Angular SPA in the angular folder, and an ASP.NET Core web API app in the webapi folder. The SPA makes HTTP requests to the server side (the webapi app) using an API BaseURL https://localhost:5001. The API BaseURL is set in the environment.ts file and the environment.prod.ts file, which can be modified based on your situation.

  • angular The SPA is served using NGINX on Docker. The application demonstrates JWT authorization in the front-end.
  • webapi The ASP.NET Core web API app is served by Kestrel on Docker. This app has implemented HTTPS support.

Usage

The demo is configured to run by Docker Compose. The services are listed in the docker-compose.yml file. You can launch the demo by the following command.

docker-compose up --build --remove-orphans

Then visit http://localhost:8080 for the app, and https://localhost:5001 for Swagger document for the web API project.

NOTE: You can also move the folders around to consolidate the solution as one ASP.NET Core web app using the SPA service.

Screenshots

License

Feel free to use the code in this repository as it is under MIT license.

Buy Me a Coffee at ko-fi.com

More Repositories

1

ServiceWorkerCronJob

Schedule Cron Jobs using HostedService in ASP.NET Core
C#
262
star
2

Minimal-URL-Shortener

An example web app based on the new feature in .NET 6 | minimal web API in ASP.NET 6
C#
125
star
3

HeadFirstDesignPattern

Head First Design Pattern: Completely Rewrite in C#
C#
50
star
4

ApiAuthDemo

A simple demo with JWT Auth APIs and Basic Auth APIs, with Swagger support. Swagger Security; Swagger Auth
C#
47
star
5

SftpService

Working with SFTP in .NET Core
C#
45
star
6

NginxLoadBalancer

Host an ASP.NET Core App with Nginx and Docker: SSL and Load Balancing
C#
42
star
7

FileTransferUsingHttpClient

Upload/Download Files Using HttpClient in C#
C#
34
star
8

HerokuContainer

Dockerized ASP.NET Core Web API app in Heroku
C#
31
star
9

AngularFileUpload

Upload files from Angular client to a .NET API endpoint
C#
26
star
10

WindowsServiceDemo

Windows Service in ASP.NET Core
C#
21
star
11

SemaphoreSlimThrottle

Rate Limiting API Endpoints in ASP.NET Core
C#
20
star
12

ApiControllerIntegrationTests

Integration Tests for API Controllers using MSTest
C#
16
star
13

HandwritingRecognition

Handwriting Recognition using ML.NET
C#
15
star
14

PatternMatchingDemos

Using Pattern Matching to Avoid Massive "if" Statements
C#
13
star
15

Client-IP-SafeList

Client IP safelist for ASP.NET Core | .NET 5 | CIDR | Network | allowed list | IP restriction
C#
12
star
16

CustomConfigurationProviderDemo

Create a Custom Configuration Provider in ASP.NET Core
C#
12
star
17

OptionsPattern

Options Pattern in .NET Core
C#
9
star
18

RunExeFromWebApi

Run an External Executable in ASP.NET Core
C#
7
star
19

UnitTestingWithILogger

Unit Testing with .NET Core ILogger<T>
C#
7
star
20

JsonLabs

Working with JSON in .NET Core 3
C#
7
star
21

KestrelHttps

Enforce HTTPS for an ASP.NET Web API hosted in Kestrel
C#
6
star
22

SerilogFilterDemo

Set up Serilog for .net applications
C#
6
star
23

ChainOfResponsibility

Design Pattern - Chain of Responsibility
C#
4
star
24

Immutable-Collection-InMemory-Cache

Working with Cache using Immutable Collections
C#
4
star
25

SslCertificateChecker

Check SSL Certificate Details Using .NET 6+
C#
3
star
26

BuilderPattern-Moq-UnitTests

Builder Pattern vs Moq in Unit Tests
C#
3
star
27

NETCoreGlobalTools

Create a custom .NET Core CLI tool
C#
2
star
28

HeadFirstOOAD

Coding practice when read HeadFirstOOAD book
C#
2
star
29

StringTemplates

How to Create String Templates in CSharp
C#
2
star
30

ConcurrencyControl

Entity Framework Core Concurrency Control Demo
C#
2
star
31

ConfigurationBuilderDemos

ConfigurationBuilder Demos: APS.NET Core configuration
C#
1
star
32

XmlDocumentationDemo

XML Documentation in CSharp
C#
1
star
33

LifetimeEventsDemo

A demo about the ASP.NET Core Lifetime Events
C#
1
star
34

MemoryCacheLabs

Cache in-memory in ASP.NET Core | tests | immutable
C#
1
star
35

ControllerUnitTests

Unit testing Controllers with ClaimsPrincipal | User | Identity | Claims
C#
1
star