GitPedia

Go guardian

Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication.

From shaj13·Updated June 20, 2026·View on GitHub·

Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication. The project is written primarily in Go, distributed under the MIT License license, first published in 2020. Key topics include: 2fa, auth, authentication, authenticator, bearer-tokens.

Latest release: v2.11.6
July 25, 2024View Changelog →

GoDoc
Go Report Card
Coverage Status
CircleCI

:exclamation: Cache package has been moved to libcache repository

Go-Guardian

Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication.

Overview

Go-Guardian sole purpose is to authenticate requests, which it does through an extensible set of authentication methods known as strategies.<br>
Go-Guardian does not mount routes or assume any particular database schema, which maximizes flexibility and allows decisions to be made by the developer.<br>
The API is simple: you provide go-guardian a request to authenticate, and go-guardian invoke strategies to authenticate end-user request.<br>
Strategies provide callbacks for controlling what occurs when authentication should succeeds or fails.

Installing

Using go-guardian is easy. First, use go get to install the latest version of the library.

sh
go get github.com/shaj13/go-guardian/v2

Next, include go-guardian in your application:

go
import "github.com/shaj13/go-guardian/v2"

Why Go-Guardian?

When building a modern application, you don't want to implement authentication module from scratch;<br>
you want to focus on building awesome software. go-guardian is here to help with that.

Here are a few bullet point reasons you might like to try it out:

  • provides simple, clean, and idiomatic API.
  • provides top trends and traditional authentication methods.
  • provides two-factor authentication and one-time password as defined in RFC-4226 and RFC-6238
  • provides a mechanism to customize strategies, even enables writing a custom strategy

Strategies

JWT, Opaque, and oauth2 packages provide early access to advanced or experimental
functionality to get community feedback. Their APIs and functionality may be subject to
breaking changes in future releases.

Examples

Examples are available on GoDoc or Examples Folder.

Documentation

API docs are available on GoDoc.

Contributing

  1. Fork it
  2. Download your fork to your PC (git clone https://github.com/your_username/go-guardian && cd go-guardian)
  3. Create your feature branch (git checkout -b my-new-feature)
  4. Make changes and add them (git add .)
  5. Commit your changes (git commit -m 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create new pull request

License

Go-Guardian is released under the MIT license. See LICENSE

Contributors

Showing top 6 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from shaj13/go-guardian via the GitHub API.Last fetched: 6/25/2026