Demo OpenID connect application
This repository contains a demo application using OAuth2/OpenID Connect to authenticate and authorize users.
The code in this repository is licensed under the terms of the Apache License Version 2.0.
Copyright © 2020-2023 CAcert Inc.
You need a server certificate and corresponding private key to run
An easy way to generate server certificate and key for local testing is
mkcert to generate
mkcert -cert-file app.cacert.localhost
Configure the Demo Application
You will need a 32 byte and a 64 byte random secret for the session authentication and encryption keys:
openssl rand -base64 64 openssl rand -base64 32
You also need the client id and the client secret, that have been generated during the OIDC client setup described above.
Put the data into
[oidc] client-id = "<client id from hydra clients invocation>" client-secret = "<client secret from hydra clients invocation>" [session] auth-key = "<64 bytes of base64 encoded data>" enc-key = "<32 bytes of base64 encoded data>"
Now you can start the demo application:
Visit https://app.cacert.localhost:4000/ in a Browser and you will be directed through the OpenID connect authorization code flow.
This application uses go-i18n for internationalization (i18n) support.
The translation workflow needs the
go18n binary which can be installed via
go install github.com/nicksnyder/go-i18n/v2/goi18n
To extract new messages from the code run
cd translations goi18n extract ..
cd translations goi18n merge active.*.toml
to create TOML files for translation as
After translating the messages run
cd translations goi18n merge active.*.toml translate.*.toml
to merge the messages back into the active translation files. To add a new
language you need to add the language code to the languages configuration
option (default is defined in the configmap in