GoDoc Go Report Card Coverage Status CircleCI

Cache package has been moved to libcache repository


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


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


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

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

Next, include go-guardian in your application:

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;
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



Examples are available on GoDoc or Examples Folder.


API docs are available on GoDoc.


  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


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