Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Todo application with ASP.NET Core Blazor WASM, Minimal APIs and Authentication

License

NotificationsYou must be signed in to change notification settings

davidfowl/TodoApp

Repository files navigation

CI

This is a Todo application that features:

  • Todo.Web - An ASP.NET Core hosted Blazor WASM front end application
  • Todo.Api - An ASP.NET Core REST API backend using minimal APIs

image

It showcases:

  • Blazor WebAssembly
  • Minimal APIs
  • Using EntityFramework and SQLite for data access
  • OpenAPI
  • User management with ASP.NET Core Identity
  • Cookie authentication
  • Bearer authentication
  • Proxying requests from the front end application server using YARP's IHttpForwarder
  • Rate Limiting
  • Writing integration tests for your REST API

Prerequisites

.NET

  1. Install .NET 9

Database

The application uses SQLite and entity framework. .NET Aspire is used to bootstrap all dependencies.

Running the application

To run the application, run theTodoApp.AppHost project. This uses .NET Aspire to run both theTodo.Web/Server andTodo.Api.

Optional

Using the API standalone

The Todo REST API can run standalone as well. You can run theTodo.Api project and make requests to various endpoints using the Swagger UI (or a client of your choice):

image

Before executing any requests, you need to create a user and get an auth token.

  1. To create a new user, run the application and POST a JSON payload to/users/register endpoint:

    {"email":"myuser@contoso.com","password":"<put a password here>"}
  2. To get a token for the above user, hit the/users/login endpoint with the above user email and password. The response will look like this:

    {"tokenType":"Bearer","accessToken":"string","expiresIn":<seconds>,"refreshToken":"string"}
  3. You should be able to use the accessToken to make authenticated requests to the todo endpoints.

Social authentication

In addition to username and password, social authentication providers can be configured to work with this todo application. By defaultit supports Github, Google, and Microsoft accounts.

Instructions for setting up each of these providers can be found at:

Once you obtain the client id and client secret, the configuration for these providers must be added with the following schema:

{"Authentication": {"Schemes": {"<scheme>": {"ClientId":"xxx","ClientSecret":"xxxx"            }        }    }}

Or using environment variables:

Authentication__Schemes__<scheme>__ClientId=xxxAuthentication__Schemes__<scheme>__ClientSecret=xxx

Or using user secrets:

dotnet user-secrets set Authentication:Schemes:<scheme>:ClientId xxxdotnet user-secrets set Authentication:Schemes:<scheme>:ClientSecret xxx

Other providers can be foundhere.These must be added toAuthenticationExtensions as well.

NOTE: Don't store client secrets in configuration!

Auth0

This sample hasAuth0 configured as an OIDC server. It can be configured with the following schema:

{"Authentication": {"Schemes": {"Auth0": {"Audience":"<audience>","Domain":"<domain>","ClientId":"<client id>","ClientSecret":"<client secret>"      }    }  }}

Learn more about the Auth0 .NET SDKhere.

OpenTelemetry

This app uses OpenTelemetry to collect logs, metrics and spans. You can see thisusing theAspire Dashboard.

About

Todo application with ASP.NET Core Blazor WASM, Minimal APIs and Authentication

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp