Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sebastiaanyn/auth-worker
https://github.com/sebastiaanyn/auth-worker
Last synced: 25 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/sebastiaanyn/auth-worker
- Owner: SebastiaanYN
- Created: 2022-07-30T21:15:44.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-03T00:25:08.000Z (almost 2 years ago)
- Last Synced: 2024-10-28T20:49:37.639Z (2 months ago)
- Language: Rust
- Size: 112 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# auth worker
⚠️ WIP ⚠️ Authentication service built on [Cloudflare Workers](https://workers.cloudflare.com/) with Rust.
## Getting started
```sh
# build project
$ npm run build# start dev server
$ npm run dev# deploy to Cloudflare
$ npm run deploy
```## User
Users are normalized to make working with different providers easier.
## Config
`config.toml` should contain the domain the Worker is under and a list of providers and their scopes.
```toml
domain = "https://auth.cf.sebastiaanyn.me"[providers]
discord = ["identify", "email"]
github = ["user:email"]
```## Providers
Providers are defined in `src/providers` and configured using TOML. Client ID and secret are provided through [Worker environment variables](https://developers.cloudflare.com/workers/platform/environment-variables/) prefixed with the provider name, such as `DISCORD_CLIENT_ID` and `DISCORD_CLIENT_SECRET`.
```toml
name = "discord"[style]
display-name = "Discord"
background-color = "#5865f2"
background-color-hover = "#707bf4"[url]
auth = "https://discord.com/api/oauth2/authorize"
token = "https://discord.com/api/oauth2/token"
```After acquiring the access token a function to fetch the user profile is called. Providers can make requests to any API required and return the normalized user object.
```rs
pub async fn fetch_user(access_token: &str) -> Result;
```