Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JWT Auth Module for Revel Go Framework

Pluggable and easy to use JWT auth module.

Module Configuration

auth.jwt.realm.name = "REVEL-JWT-AUTH"                  // default is REVEL-JWT-AUTH
auth.jwt.issuer = "REVEL-JWT-AUTH" 				        // use appropriate values (string, URL), default is REVEL-JWT-AUTH
auth.jwt.expiration = 30						        // In minutes, default is 60 minutes
auth.jwt.key.private = "/Users/jeeva/private.rsa"
auth.jwt.key.public = "/Users/jeeva/public.rsa.pub"
auth.jwt.anonymous = "/token, /freepass/.*"  				// Valid regexp allowed for path

Enabling Auth Module

Add module.jwtauth = github.com/jeevatkm/jwtauth into conf/app.conf

Registering Auth Routes

Add module:jwtauth into conf/routes. Auth modules enables following routes

# JWT Auth Routes
POST	/token									JwtAuth.Token
GET		/refresh-token							JwtAuth.RefreshToken
GET		/logout									JwtAuth.Logout

Registering Auth Filter

Revel Filter for JWT Auth Token verification. Register it in the revel.Filters in <APP_PATH>/app/init.go

// Add jwt.AuthFilter anywhere deemed appropriate, it must be register after revel.PanicFilter
revel.Filters = []revel.Filter{
  revel.PanicFilter,
	...
	jwt.AuthFilter,		// JWT Auth Token verification for Request Paths
	...
}
// Note: If everything looks good then Claims map made available via c.Args
// and can be accessed using c.Args[jwt.TOKEN_CLAIMS_KEY]

Register Auth Handler

Auth handler is responsible for validate user and returning Subject (aka sub) value and success/failure boolean. It should comply AuthHandler interface or use raw func via jwt.AuthHandlerFunc.

revel.OnAppStart(func() {
	jwt.Init(&MyAuth{})
	//          OR
	jwt.Init(jwt.AuthHandlerFunc(func(username, password string) (string, bool) {
		revel.INFO.Printf("Username: %v, Password: %v", username, password)
		return "This is my subject value from function", true
	}))
})

About

JWT Auth Module for Revel Go Framework

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages