A tiny, stateless, code-based Deno identity server with code login and a JSON user store.
idently provides a dead-simple authentication layer for internal tools, admin panels, or APIs:
- login via secret code (no email, no passwords)
- flat file
store/users.jsonuser store - generates short and long valid JWTs and verifies them
- additional endpoint to get all users as an admin
Sometimes you don't need OAuth, Firebase, or Keycloak. You just want a damn code and a JWT.
idently: simple identity, stateless, stylish.
GET /token/short– login with code & source in header, get a short valid JWTGET /token/long– login with code & source in header, get a long valid JWTGET /token/verify– verify JWT (with source header!) & return claimsGET /users– return user data if you have an admin JWT- configurable
JWT_SECRET - configurable additional header
REQUIRED_HEADER - configurable value for additional header
EXPECTED_HEADER_VALUE - configurable seconds for short valid token
TOKEN_SHORT_EXPIRES_IN_S(3 minutes in example config) - configurable seconds for long valid token
TOKEN_LONG_EXPIRES_IN_S(5 hours in example config) - JSON-based user store
- minimal Docker image (~50 MB)
- built on Deno – no npm, no install
git clone https://github.com/m1well/idently.git
cd idently
cp .env.example .envchange env vars the way you want them
deno task startjust use the requests.http to test the current endpoints
deno task testsdeno task format- just add more optional properties to the user type
- add the mapping to the claims (only propertys you need in the jwt claim!)
add additional .env.cloud file to have separate env values for Docker
docker build -t idently .
docker run -p 8000:8000 identlyyou can find an example deployment file here k8s/deployment.example.yml
just go for it :)
clean code is a prerequisite - then simply create a pull request!
it would be cool if we could keep conventional commits
(fix:... / feat:... / chore:... / docs:... / refactor:... / test:...)
This project is licensed under the MIT License
Created by m1well