This repository contains the backend implementation (in both .NET and Java) for my custom version of Maximilian Schwarzmüller’s React Meals project (as of 2023).
Frontend repo: ReactMealsTS_FrontEnd
- NGROK support for secure HTTPS tunneling during development.
- EF Core with SQL Server for database access and persistence (.NET version).
- Auth0 Integration for authentication and authorization:
- User registration and login
- Claims and policies
- M2M (machine-to-machine) access tokens
- Uses EF Core and SQL Server.
- Set
Auth0__M2M_ClientSecretas an environment secret, or place the secret value alone inm2m_secret.txtat the app content root for local development.
- Uses Spring Boot with JPA (Hibernate) + HikariCP, by default connects to the same local MS SQL Server as the .NET implementation (uses different database).
- Auth0 secret and its various properties should be stored in a
secret.propertiesfile.
Note: for both technologies, the above Auth0 files are excluded from version control for security reasons, they must be created manually
Place this file at:
C:\Users\{YourUsername}\.auth0
And define the following properties:
auth0.domain=...
auth0.audience=...
auth0.m2maudience=...
auth0.m2m_clientid=...
auth0.m2m_clientsecret=...- Clone this repository.
- Checkout the appropriate branch (
masterfor .NET orspringfor Java). - Configure your Auth0 secrets as described above.
- Start the backend server.
- Launch the frontend described at ReactMealsTS_FrontEnd.
Before starting an existing database with this version, apply the PreserveOrderItems EF Core migration. It copies current dish details into existing order items, changes the dish foreign key so a dish with orders cannot be deleted, and removes previously stored Management API bearer tokens. New Management API tokens are kept in memory. Details already lost through earlier dish deletions cannot be restored by the migration.
With the EF Core CLI installed, run dotnet ef database update --project ReactMeals_WebApi/ReactMeals_WebApi.csproj from the repository root.
The CreateUser endpoint accepts only tokens whose azp or client_id claim matches Auth0:M2M_RegistrationClientID (or Auth0:M2M_ClientID when that setting is absent). Configure this to the Auth0 Action client ID before deploying. Set Images:Directory to a writable, persistent directory for uploaded dish images; it defaults to Images under the app content root. Copy existing dish images into that directory when changing it.
- Do not commit any secret files (like
secret.propertiesorm2m_secret.txt) to version control. - NGROK can be used for secure HTTPS development tunnel.