Authentication and OAuth

Libraries for implementing authentication schemes.

casbin18K

Authorization library that supports access control models like ACL, RBAC, and ABAC.

jwt-go7.5K

A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs.

goth5.7K

provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box.

oauth25.5K

Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support.

keto4.9K

Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models.

authboss3.9K

Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure it, and start building your app without having to build an authentication system each time.

openfga3.1K

Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by CNCF.

scs2.2K

Session Manager for HTTP servers.

jwx2K

Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies

loginsrv1.9K

JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam.

osin1.9K

Golang OAuth2 server library.

gologin1.9K

chainable handlers for login with OAuth1 and OAuth2 authentication providers.

gorbac1.6K

provides a lightweight role-based access control (RBAC) implementation in Golang.

oidc1.5K

Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation

paseto869

Golang implementation of Platform-Agnostic Security Tokens (PASETO).

jwt673

Safe, simple, and fast JSON Web Tokens for Go.

go-guardian566

Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token, and Certificate based authentication.

permissions2512

Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt.

jwt357

Lightweight JSON Web Token (JWT) library.

go-jose344

Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.

jeff267

Simple, flexible, secure, and idiomatic web session management with pluggable backends.

gosession259

This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, or at least it tries to become one.

jwt-auth233

JWT middleware for Golang http servers with many configuration options.

otpgen138

Library to generate TOTP/HOTP codes.

goiabada137

An open-source authentication and authorization server supporting OAuth2 and OpenID Connect.

sessionup125

Simple, yet effective HTTP session management and identification package.

sjwt120

Simple jwt generator and parser.

session118

Go session management for web servers (including support for Google App Engine - GAE).

branca89

branca token specification implementation for Golang 1.15+.

securecookie81

Efficient secure cookie encoding/decoding.

sessions78

Dead simple, highly performant, highly customizable sessions service for go http servers.

otpgo72

Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go.

scope41

Easily Manage OAuth2 Scopes In Go.

cookiestxt17

provides a parser of cookies.txt file format.