/gin-basic-auth-dynamic

gin middleware for basic auth with callback

Primary LanguageGoMIT LicenseMIT

use 'godoc cmd/github.com/jackdoe/gin-basic-auth-dynamic' for documentation on the github.com/jackdoe/gin-basic-auth-dynamic command 

PACKAGE DOCUMENTATION

package auth
    import "github.com/jackdoe/gin-basic-auth-dynamic"


FUNCTIONS

func BasicAuth(callback func(*gin.Context, string, string, string) AuthResult) gin.HandlerFunc
    Makes BasicAuth function for empty realm

func BasicAuthForRealm(callback func(*gin.Context, string, string, string) AuthResult, realm string) gin.HandlerFunc
    Calls the callback function with (realm, user, password) if it returns
    true, then the user is authenticated, otherwise request is rejected with
    401 header Example usage:

	r := gin.Default()
	r.Use(auth.BasicAuth(func(context *gin.Context, realm, user, pass string) bool {
		ok := user == "something" && pass == "something else"
		return AuthResult{Success: ok, Text: "not authorized"}
	}))

    You are also passed the context so you can do c.Set() stuff, for
    example:

	r := gin.Default()
	r.Use(auth.BasicAuth(func(context *gin.Context, realm, user, pass string) AuthResult {
		user := db.FindUser(user, pass)
		if user != nil {
			c.Set("user", user)
			return auth.AuthResult{Success:true}
		}
		return auth.AuthResult{Success:false}
	}))

TYPES

type AuthResult struct {
    Success bool
    Text    string
}