This repository hosts an OAuth authorization server which provides absolutely no security. Its purpose is to enable development tests.
- Dart: Required to configure and run the mock server
- Docker: (Optional) Required to package and publish the mock server
# Run server on default port 8080
dart bin/server.dart
# Run server on specific port
dart bin/server.dart 7777
$ curl -i 'localhost:7777/authorize?redirect_uri=http://localhost:8080/bff/callback&state=12323'
HTTP/1.1 302 Found
location: http://localhost:8080/bff/callback?code=W7S4aFZ&state=12323
Request (OAuth)
curl --request POST \
--header "content-type: application/x-www-form-urlencoded" \
--data "client_id=jnebdD0fczAHoEBVrr6lE7OAuYchc2ZR" \
--data "client_secret=xxxxx" \
--data "grant_type=authorization_code" \
--data "redirect_uri=http://localhost/callback" \
--data "code=W7S4aFZ" \
"http://localhost:7777/oauth/token"
Request (simple)
curl -X POST localhost:7777/token
Response
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NTA3Mjk5MjYsImV4cCI6MTY1MDgxNjMyNiwiaXNzIjoiaHR0cHM6Ly9ub2F1dGgtZ2Eyc3BlYm94YS1ldy5hLnJ1bi5hcHAvIn0.HGQfzXCi278UImFOjZn_vdxAflti-OkycjTTXA5RS9Y",
"refresh_token": "N28Liif8KTFvjAET1uKhB8oYb6TNQqDNV2k4tq5SDxj5Jc",
"id_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuaWNrbmFtZSI6Impkb2UiLCJuYW1lIjoiSm9obiBEb2UiLCJlbWFpbCI6Impkb2VAbm9hdXRoLWdhMnNwZWJveGEtZXcuYS5ydW4uYXBwIiwic3ViIjoiYXV0aDB8NjFjMzA2MDYyMDY4MGQwMDY5NmUwOWEyIiwiYXVkIjoiam5lYmREMGZjekFIb0VCVnJyNmxFN09BdVljaGMyWlIiLCJpYXQiOjE2NTA3Mjk5MjYsImV4cCI6MTY1MDgxNjMyNiwiaXNzIjoiaHR0cHM6Ly9ub2F1dGgtZ2Eyc3BlYm94YS1ldy5hLnJ1bi5hcHAvIn0.yhjrKoZI1dhh29y1Nz5qork4AsIjY32M37zuU0FFvSE",
"scope": "openid profile email offline_access",
"expires_in": 86400,
"token_type": "Bearer"
}
$ echo "token=$ACCESS_TOKEN" | curl -X POST --data @'-' -s localhost:7777/token-info
{
"active": true,
"client_id": null,
"scope": null
}
$ curl -X GET -i localhost:7777/login
HTTP/1.1 204 No Content
set-cookie: mockAccessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NTE5MTY1NzIsImV4cCI6MTY1MjAwMjk3MiwiaXNzIjoiaHR0cHM6Ly9ub2F1dGgtZ2Eyc3BlYm94YS1ldy5hLnJ1bi5hcHAvIn0.3w8uqedcxHi0BrNiu5X5FCSk5Xy5xcvdEtCWWgeJdjE; Path=/; Secure
$ curl -X GET -i localhost:7777/login?redirect_uri=http://localhost:7778
HTTP/1.1 303 See Other
set-cookie: mockAccessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NTE5MTY3MjcsImV4cCI6MTY1MjAwMzEyNywiaXNzIjoiaHR0cHM6Ly9ub2F1dGgtZ2Eyc3BlYm94YS1ldy5hLnJ1bi5hcHAvIn0.ZbhmfYxZIPjv6u_UxJZqweFAS1cYRWNj25w-Vs4ZF2s; Path=/; Secure
# Build docker image
docker build . -t noauth
# Run in daemon mode
docker run -d -p 7777:8080 noauth
# Try request
curl localhost:7777/
dart run build_runner build
gcloud init
gcloud run deploy