All Projects → hummingbird-me → genkan

hummingbird-me / genkan

Licence: Apache-2.0 License
🔑 The future of Kitsu's Authentication

Programming Languages

ruby
36898 projects - #4 most used programming language
HTML
75241 projects
SCSS
7915 projects
Slim
82 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to genkan

Django Oauth2 Server
OAuth2 server written in Python with Django
Stars: ✭ 108 (+730.77%)
Mutual labels:  oauth2, oauth2-server
Doorkeeper Provider App
An example OAuth 2 provider application using the Doorkeeper gem, Rails and Devise
Stars: ✭ 146 (+1023.08%)
Mutual labels:  oauth2, oauth2-server
Node Oauth2 Server Example
Working oauth2 server with minimal configuration
Stars: ✭ 115 (+784.62%)
Mutual labels:  oauth2, oauth2-server
Node Oauth2 Server Mongo Example
Working oauth2 server with mongodb storage and minimal configuration
Stars: ✭ 76 (+484.62%)
Mutual labels:  oauth2, oauth2-server
jpsite-security-oauth2-open
微服务开放API授权平台
Stars: ✭ 21 (+61.54%)
Mutual labels:  oauth2, oauth2-server
Cierge
🗝️ Passwordless OIDC authentication done right
Stars: ✭ 1,245 (+9476.92%)
Mutual labels:  oauth2, oauth2-server
Go Oauth2 Server
A standalone, specification-compliant, OAuth2 server written in Golang.
Stars: ✭ 1,843 (+14076.92%)
Mutual labels:  oauth2, oauth2-server
Oauth2 Shiro Jwt
use oauth2, shiro and spring specrity to make an ums system
Stars: ✭ 29 (+123.08%)
Mutual labels:  oauth2, oauth2-server
Authlib
The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included.
Stars: ✭ 2,854 (+21853.85%)
Mutual labels:  oauth2, oauth2-server
Egg Oauth2 Server
🌟 OAuth2 server plugin for egg.js based on node-oauth2-server
Stars: ✭ 174 (+1238.46%)
Mutual labels:  oauth2, oauth2-server
Login Cidadao
Projeto Login Cidadão
Stars: ✭ 61 (+369.23%)
Mutual labels:  oauth2, oauth2-server
Light Oauth2
A fast, light and cloud native OAuth 2.0 authorization microservices based on light-4j
Stars: ✭ 247 (+1800%)
Mutual labels:  oauth2, oauth2-server
Oauth2 Server
OAuth2 Server Library
Stars: ✭ 42 (+223.08%)
Mutual labels:  oauth2, oauth2-server
Flask Oauthlib
YOU SHOULD USE https://github.com/lepture/authlib
Stars: ✭ 1,429 (+10892.31%)
Mutual labels:  oauth2, oauth2-server
Fake Oauth2 Server
An OAuth2 server implementation to be used for testing
Stars: ✭ 34 (+161.54%)
Mutual labels:  oauth2, oauth2-server
Hydra
OpenID Certified™ OpenID Connect and OAuth Provider written in Go - cloud native, security-first, open source API security for your infrastructure. SDKs for any language. Compatible with MITREid.
Stars: ✭ 11,884 (+91315.38%)
Mutual labels:  oauth2, oauth2-server
Doorkeeper
Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape.
Stars: ✭ 4,917 (+37723.08%)
Mutual labels:  oauth2, oauth2-server
Web Framework For Java
A seed project with spring boot for AngularJS, AngularJs Material, Thymeleaf, RESTful API, MySQL and admin panel based on AdminLTE.
Stars: ✭ 29 (+123.08%)
Mutual labels:  oauth2, oauth2-server
Oauth2
OAuth 2.0 server library for the Go programming language.
Stars: ✭ 2,173 (+16615.38%)
Mutual labels:  oauth2, oauth2-server
Express Gateway
A microservices API Gateway built on top of Express.js
Stars: ✭ 2,583 (+19769.23%)
Mutual labels:  oauth2, oauth2-server

Genkan (玄関)

Genkan is the Kitsu Authentication service, written as a standalone application in Rails 5, backed by PostgreSQL. In terms of functionality, it sits somewhere between Devise and Doorkeeper, but implemented as an application instead of a gem. Because it's implemented as a full Rails app, you don't need to worry about dependency conflicts or naming collisions or any of that nonsense.

Simply fork Genkan, change the views, hook your own application up to the API, and you're set. To update, just rebase.

Models

User Name

The UserName model maps case-insensitive user-friendly identifiers such as email addresses or account names to a computer-provided User ID. The User ID is completely opaque to Genkan, and it's up to you what string you wanna use. Kitsu uses auto-incrementing integers, but you don't have to. If you use UUIDs for users, that works too.

User Password

A user can have as many passwords as you want. The passwords are bcrypt-hashed before storage, marked with a creation time, and you can mark them as invalid at any time.

User Assertion ID

The OAuth2 Assertion Grant provides a flow for authorization where a client presents a valid token from an external service (such as Twitter, Facebook, or Google) which can be verified by the server. For this purpose, Genkan has a UserAssertionID model, which stores a mapping between an external user ID and an internal user ID.

Token

Genkan issues signed JWTs for all Tokens (using RS256 by default) but also stores their metadata in a database table for revocation. For revocation to work, your application must use the API to authenticate the token on each request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].