token_go

package module
v0.1.81 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2024 License: Apache-2.0 Imports: 18 Imported by: 2

README

Token-Go

This library focuses on solving login authentication problems, such as: login, multi-account login, shared token login, token refresh, double token refresh, QR Code login, logout, kickout, banned, second auth, temp-token, SSO ...

Installation

go get github.com/weloe/token-go

Simple Example

import (
	"fmt"
	tokenGo "github.com/weloe/token-go"
	"log"
	"net/http"
)

var enforcer *tokenGo.Enforcer

func main() {
	var err error
	// use default adapter
	adapter := tokenGo.NewDefaultAdapter()
	enforcer, err = tokenGo.NewEnforcer(adapter)
	// enable logger
	enforcer.EnableLog()
	if err != nil {
		log.Fatal(err)
	}

	http.HandleFunc("/user/login", Login)
	http.HandleFunc("/user/logout", Logout)
	http.HandleFunc("/user/isLogin", IsLogin)
	http.HandleFunc("/user/kickout", Kickout)

	log.Fatal(http.ListenAndServe(":8081", nil))
}

func Login(w http.ResponseWriter, req *http.Request) {
	token, err := enforcer.Login("1", tokenGo.NewHttpContext(req, w))
	if err != nil {
		fmt.Fprintf(w, "Login error: %s\n", err)
	}
	fmt.Fprintf(w, "token: %s\n", token)
}

func Logout(w http.ResponseWriter, req *http.Request) {
	err := enforcer.Logout(tokenGo.NewHttpContext(req, w))
	if err != nil {
		fmt.Fprintf(w, "Logout error: %s\n", err)
	}
	fmt.Fprintf(w, "logout success")
}

func IsLogin(w http.ResponseWriter, req *http.Request) {
	login, err := enforcer.IsLogin(tokenGo.NewHttpContext(req, w))
	if err != nil {
		fmt.Fprintf(w, "IsLogin() = %v: %v", login, err)
	}
	fmt.Fprintf(w, "IsLogin() = %v", login)
}

func Kickout(w http.ResponseWriter, req *http.Request) {
	err := enforcer.Kickout(req.URL.Query().Get("id"), "")
	if err != nil {
		fmt.Fprintf(w, "error: %s\n", err)
	}
	fmt.Fprintf(w, "logout success")
}

Custom TokenConfig

The same user can only log in once: IsConcurrent = false && IsShare = false

The same user logs in multiple times and shares a token: IsConcurrent = true && IsShare = true

Multiple logins of the same user to multiple tokens: IsConcurrent = true && IsShare = false

import (
	"fmt"
	tokenGo "github.com/weloe/token-go"
	"github.com/weloe/token-go/config"
	"log"
	"net/http"
)

var enforcer *tokenGo.Enforcer

func main() {
	var err error
	// use default adapter
	adapter := tokenGo.NewDefaultAdapter()
	tokenConfig := &config.TokenConfig{
		TokenName:     "uuid",
		Timeout:       60,
		IsReadCookie:  true,
		IsReadHeader:  true,
		IsReadBody:    false,
		IsConcurrent:  true,
		IsShare:       true,
		MaxLoginCount: -1,
	}
	enforcer, err = tokenGo.NewEnforcer(adapter, tokenConfig)
}

You can also configure it using a yml or ini file like this

token-go/token_conf.ini at master · weloe/token-go · GitHub

token-go/token_conf.yaml at master · weloe/token-go · GitHub

Then use enforcer, err = tokenGo.NewEnforcer(adapter, filepath) to init.

Authorization

A simple permission verification method is also provided

type ACL interface {
	GetPermission(id string) []string
}
type RBAC interface {
	GetRole(id string) []string
}

Implement either of these two interfaces and call enforcer.SetAuth(model) After that, you can use these two APIs for permission verification

// implement RBAC
CheckRole(ctx ctx.Context, role string) error
// implement ACL
CheckPermission(ctx ctx.Context, permission string) error
example
type Auth struct {
}

func (m *Auth) GetRole(id string) []string {
	var arr = make([]string, 2)
	arr[1] = "user"
	return arr
}
func (m *Auth) GetPermission(id string) []string {
	var arr = make([]string, 2)
	arr[1] = "user::get"
	return arr
}


func main() {
	var err error
	// use default adapter
	adapter := tokenGo.NewDefaultAdapter()
	enforcer, err = tokenGo.NewEnforcer(adapter)
	// set auth
	enforcer.SetAuth(&Auth{})
	// enable logger
	enforcer.EnableLog()
	if err != nil {
		log.Fatal(err)
	}
	
	http.HandleFunc("/user/check", CheckAuth)
	
	log.Fatal(http.ListenAndServe(":8081", nil))
}

func CheckAuth(w http.ResponseWriter, req *http.Request) {
	ctx := tokenGo.NewHttpContext(req, w)
	err := enforcer.CheckRole(ctx, "user")
	if err != nil {
		fmt.Fprintf(w, "CheckRole() error: %s\n", err)
		return
	}
	err = enforcer.CheckPermission(ctx, "user::get")
	if err != nil {
		fmt.Fprintf(w, "CheckPermission() error: %s\n", err)
		return
	}
	fmt.Fprintf(w, "you have authorization")
}

SSO

SSO-Server examples: https://github.com/weloe/token-go/blob/master/examples/sso/sso-server/sso-server.go

SSO-Client examples: https://github.com/weloe/token-go/blob/master/examples/sso/sso-client-3/sso-client.go

Extensions

https://github.com/weloe/token-go-extensions

Adapter
RedisAdapter go get github.com/weloe/token-go-extensions/redis-adapter
Enforcer
StatelessEnforcer go get github.com/weloe/token-go-extensions/jwt

Documentation

https://github.com/weloe/token-go/wiki

Api

token_go package - github.com/weloe/token-go - Go Packages

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewDefaultAdapter

func NewDefaultAdapter() persist.Adapter

func NewHttpContext

func NewHttpContext(req *http.Request, writer http.ResponseWriter) ctx.Context

Types

type DistributedEnforcer added in v0.1.6

type DistributedEnforcer struct {
	*Enforcer
}

func NewDistributedEnforcer added in v0.1.6

func NewDistributedEnforcer(enforcer *Enforcer) *DistributedEnforcer

func (*DistributedEnforcer) DeleteSelf added in v0.1.6

func (e *DistributedEnforcer) DeleteSelf(key string) error

func (*DistributedEnforcer) EnableDispatcher added in v0.1.6

func (e *DistributedEnforcer) EnableDispatcher(b bool)

func (*DistributedEnforcer) SetSelf added in v0.1.6

func (e *DistributedEnforcer) SetSelf(key string, value interface{}, timeout int64) error

func (*DistributedEnforcer) SetStrSelf added in v0.1.6

func (e *DistributedEnforcer) SetStrSelf(key string, value string, timeout int64) error

func (*DistributedEnforcer) UpdateSelf added in v0.1.6

func (e *DistributedEnforcer) UpdateSelf(key string, value interface{}) error

func (*DistributedEnforcer) UpdateStrSelf added in v0.1.6

func (e *DistributedEnforcer) UpdateStrSelf(key string, value string) error

func (*DistributedEnforcer) UpdateTimeoutSelf added in v0.1.6

func (e *DistributedEnforcer) UpdateTimeoutSelf(key string, timeout int64) error

type Enforcer

type Enforcer struct {
	// contains filtered or unexported fields
}

func InitWithConfig

func InitWithConfig(tokenConfig *config.TokenConfig, adapter persist.Adapter) (*Enforcer, error)

func InitWithDefaultConfig

func InitWithDefaultConfig(adapter persist.Adapter) (*Enforcer, error)

func InitWithFile

func InitWithFile(conf string, adapter persist.Adapter) (*Enforcer, error)

func NewEnforcer

func NewEnforcer(adapter persist.Adapter, args ...interface{}) (*Enforcer, error)

func (*Enforcer) AddTokenGenerateFun

func (e *Enforcer) AddTokenGenerateFun(tokenStyle string, f model.HandlerFunc) error

AddTokenGenerateFun add token generate strategy

func (*Enforcer) Banned

func (e *Enforcer) Banned(id string, service string, level int, time int64) error

Banned ban user, if time == 0,the timeout is not set

func (*Enforcer) CancelAuth added in v0.1.3

func (e *Enforcer) CancelAuth(tempToken string) error

CancelAuth update state to constant.CancelAuth

func (*Enforcer) CheckLogin

func (e *Enforcer) CheckLogin(ctx ctx.Context) error

func (*Enforcer) CheckLoginByToken added in v0.0.9

func (e *Enforcer) CheckLoginByToken(token string) error

func (*Enforcer) CheckPermission

func (e *Enforcer) CheckPermission(ctx ctx.Context, permission string) error

func (*Enforcer) CheckRole

func (e *Enforcer) CheckRole(ctx ctx.Context, role string) error

func (*Enforcer) CloseSafe added in v0.0.9

func (e *Enforcer) CloseSafe(token string, service string) error

func (*Enforcer) ConfirmAuth added in v0.1.3

func (e *Enforcer) ConfirmAuth(tempToken string) error

ConfirmAuth update state to constant.ConfirmAuth

func (*Enforcer) CreateQRCodeState added in v0.1.3

func (e *Enforcer) CreateQRCodeState(QRCodeId string, timeout int64) error

func (*Enforcer) CreateTempToken added in v0.1.0

func (e *Enforcer) CreateTempToken(token string, service string, value string, timeout int64) (string, error)

func (*Enforcer) CreateTempTokenByStyle added in v0.1.7

func (e *Enforcer) CreateTempTokenByStyle(style string, service string, value string, timeout int64) (string, error)

func (*Enforcer) DeleteQRCode added in v0.1.5

func (e *Enforcer) DeleteQRCode(QRCodeId string) error

func (*Enforcer) DeleteSession added in v0.0.6

func (e *Enforcer) DeleteSession(id string) error

func (*Enforcer) DeleteTempToken added in v0.1.0

func (e *Enforcer) DeleteTempToken(service string, tempToken string) error

func (*Enforcer) EnableLog

func (e *Enforcer) EnableLog()

func (*Enforcer) EnableUpdatableWatcher added in v0.1.6

func (e *Enforcer) EnableUpdatableWatcher(b bool)

func (*Enforcer) GetAdapter

func (e *Enforcer) GetAdapter() persist.Adapter

func (*Enforcer) GetBannedLevel added in v0.0.5

func (e *Enforcer) GetBannedLevel(id string, service string) (int64, error)

GetBannedLevel get banned level

func (*Enforcer) GetBannedTime added in v0.0.5

func (e *Enforcer) GetBannedTime(id string, service string) int64

GetBannedTime get banned time

func (*Enforcer) GetDeviceByToken added in v0.1.7

func (e *Enforcer) GetDeviceByToken(token string) string

func (*Enforcer) GetId added in v0.1.0

func (e *Enforcer) GetId(ctx ctx.Context) string

GetId get the id from the Adapter, do not check the value

if GetId()= -4, it means that user be replaced
if GetId()= -5, it means that user be kicked
if GetId()= -6, it means that user be banned

func (*Enforcer) GetIdByToken added in v0.0.5

func (e *Enforcer) GetIdByToken(token string) string

GetIdByToken get the id from the Adapter

func (*Enforcer) GetLogger added in v0.0.5

func (e *Enforcer) GetLogger() log.Logger

func (*Enforcer) GetLoginCount

func (e *Enforcer) GetLoginCount(id string, device ...string) int

func (*Enforcer) GetLoginCounts added in v0.1.7

func (e *Enforcer) GetLoginCounts() (int, error)

func (*Enforcer) GetLoginDevices added in v0.1.7

func (e *Enforcer) GetLoginDevices(id string) []string

func (*Enforcer) GetLoginId

func (e *Enforcer) GetLoginId(ctx ctx.Context) (string, error)

GetLoginId get id and check it

func (*Enforcer) GetLoginIdByToken added in v0.0.9

func (e *Enforcer) GetLoginIdByToken(token string) (string, error)

func (*Enforcer) GetLoginTokenCounts added in v0.1.7

func (e *Enforcer) GetLoginTokenCounts() (int, error)

func (*Enforcer) GetQRCode added in v0.1.3

func (e *Enforcer) GetQRCode(QRCodeId string) *model.QRCode

func (*Enforcer) GetQRCodeState added in v0.1.3

func (e *Enforcer) GetQRCodeState(QRCodeId string) model.QRCodeState

GetQRCodeState

WaitScan   = 1
WaitAuth   = 2
ConfirmAuth  = 3
CancelAuth = 4
Expired    = 5

func (*Enforcer) GetQRCodeTimeout added in v0.1.3

func (e *Enforcer) GetQRCodeTimeout(QRCodeId string) int64

func (*Enforcer) GetRefreshToken added in v0.1.7

func (e *Enforcer) GetRefreshToken(tokenValue string) string

func (*Enforcer) GetRequestToken

func (e *Enforcer) GetRequestToken(ctx ctx.Context) string

GetRequestToken read token from requestHeader | cookie | requestBody

func (*Enforcer) GetSafeTime added in v0.0.9

func (e *Enforcer) GetSafeTime(token string, service string) int64

func (*Enforcer) GetSession

func (e *Enforcer) GetSession(id string) *model.Session

func (*Enforcer) GetTempTokenTimeout added in v0.1.0

func (e *Enforcer) GetTempTokenTimeout(service string, tempToken string) int64

func (*Enforcer) GetTokenConfig added in v0.0.5

func (e *Enforcer) GetTokenConfig() config.TokenConfig

func (*Enforcer) GetType

func (e *Enforcer) GetType() string

func (*Enforcer) GetUpdatableWatcher added in v0.1.7

func (e *Enforcer) GetUpdatableWatcher() persist.UpdatableWatcher

func (*Enforcer) GetWatcher added in v0.0.5

func (e *Enforcer) GetWatcher() persist.Watcher

func (*Enforcer) IsBanned added in v0.0.5

func (e *Enforcer) IsBanned(id string, service string) bool

IsBanned if banned return true, else return false

func (*Enforcer) IsLogEnable

func (e *Enforcer) IsLogEnable() bool

func (*Enforcer) IsLogin

func (e *Enforcer) IsLogin(ctx ctx.Context) (bool, error)

IsLogin check if user logged in by token.

func (*Enforcer) IsLoginById

func (e *Enforcer) IsLoginById(id string, device ...string) (bool, error)

IsLoginById check if user logged in by loginId. check all tokenValue and if one is validated return true

func (*Enforcer) IsLoginByToken added in v0.0.5

func (e *Enforcer) IsLoginByToken(tokenValue string) (bool, error)

func (*Enforcer) IsSafe added in v0.0.9

func (e *Enforcer) IsSafe(token string, service string) bool

func (*Enforcer) Kickout

func (e *Enforcer) Kickout(id string, device ...string) error

Kickout kickout user

func (*Enforcer) Login

func (e *Enforcer) Login(id string, ctx ...ctx.Context) (string, error)

Login login by id and default loginModel, return tokenValue and error

func (*Enforcer) LoginById added in v0.0.6

func (e *Enforcer) LoginById(id string, device ...string) (string, error)

func (*Enforcer) LoginByModel

func (e *Enforcer) LoginByModel(id string, loginModel *model.Login, c ...ctx.Context) (string, error)

LoginByModel login by id and loginModel, return tokenValue and error

func (*Enforcer) Logout

func (e *Enforcer) Logout(ctx ctx.Context) error

Logout user logout

func (*Enforcer) LogoutById added in v0.0.6

func (e *Enforcer) LogoutById(id string, device ...string) error

LogoutById force user to logout

func (*Enforcer) LogoutByToken added in v0.0.5

func (e *Enforcer) LogoutByToken(token string) error

LogoutByToken clear token info

func (*Enforcer) OpenSafe added in v0.0.9

func (e *Enforcer) OpenSafe(token string, service string, time int64) error

func (*Enforcer) ParseTempToken added in v0.1.0

func (e *Enforcer) ParseTempToken(service string, tempToken string) string

func (*Enforcer) RefreshToken added in v0.1.7

func (e *Enforcer) RefreshToken(refreshToken string, refreshModel ...*model.Refresh) (*model.RefreshRes, error)

func (*Enforcer) RefreshTokenByModel added in v0.1.7

func (e *Enforcer) RefreshTokenByModel(refreshToken string, refreshModel *model.Refresh, ctx ...ctx.Context) (*model.RefreshRes, error)

func (*Enforcer) Replaced

func (e *Enforcer) Replaced(id string, device ...string) error

Replaced replace other user

func (*Enforcer) ResponseToken added in v0.0.5

func (e *Enforcer) ResponseToken(tokenValue string, loginModel *model.Login, ctx ctx.Context) error

ResponseToken set token to cookie or header

func (*Enforcer) Scanned added in v0.1.3

func (e *Enforcer) Scanned(QRCodeId string, loginId string) (string, error)

Scanned update state to constant.WaitAuth, return tempToken

func (*Enforcer) SetAdapter

func (e *Enforcer) SetAdapter(adapter persist.Adapter)

func (*Enforcer) SetAuth

func (e *Enforcer) SetAuth(manager interface{})

func (*Enforcer) SetDispatcher added in v0.1.6

func (e *Enforcer) SetDispatcher(dispatcher persist.Dispatcher)

func (*Enforcer) SetIdByToken added in v0.1.3

func (e *Enforcer) SetIdByToken(id string, tokenValue string, timeout int64) error

func (*Enforcer) SetJwtSecretKey added in v0.0.5

func (e *Enforcer) SetJwtSecretKey(key string)

func (*Enforcer) SetLogger

func (e *Enforcer) SetLogger(logger log.Logger)

func (*Enforcer) SetSession

func (e *Enforcer) SetSession(id string, session *model.Session, timeout int64) error

func (*Enforcer) SetType

func (e *Enforcer) SetType(t string)

func (*Enforcer) SetUpdatableWatcher added in v0.1.7

func (e *Enforcer) SetUpdatableWatcher(watcher persist.UpdatableWatcher)

func (*Enforcer) SetWatcher

func (e *Enforcer) SetWatcher(watcher persist.Watcher)

func (*Enforcer) UnBanned added in v0.0.5

func (e *Enforcer) UnBanned(id string, services ...string) error

UnBanned Unblock user account

func (*Enforcer) UpdateSession added in v0.0.6

func (e *Enforcer) UpdateSession(id string, session *model.Session) error

func (*Enforcer) UpdateSessionTimeout added in v0.1.7

func (e *Enforcer) UpdateSessionTimeout(id string, timeout int64) error

type IDistributedEnforcer added in v0.1.6

type IDistributedEnforcer interface {
	IEnforcer
	// SetStrSelf store string in all instances
	SetStrSelf(key string, value string, timeout int64) error
	// UpdateStrSelf only update string value in all instances
	UpdateStrSelf(key string, value string) error
	// SetSelf store interface{} in all instances
	SetSelf(key string, value interface{}, timeout int64) error
	// UpdateSelf only update interface{} value in all instances
	UpdateSelf(key string, value interface{}) error
	// DeleteSelf delete interface{} value in all instances
	DeleteSelf(key string) error
	// UpdateTimeoutSelf update timeout in all instances
	UpdateTimeoutSelf(key string, timeout int64) error
}

type IEnforcer

type IEnforcer interface {
	// Enforcer field api
	SetType(t string)
	GetType() string
	GetAdapter() persist.Adapter
	SetAdapter(adapter persist.Adapter)
	SetWatcher(watcher persist.Watcher)
	GetWatcher() persist.Watcher
	SetLogger(logger log.Logger)
	GetLogger() log.Logger
	EnableLog()
	IsLogEnable() bool
	GetTokenConfig() config.TokenConfig

	// Login login api
	Login(id string, ctx ...ctx.Context) (string, error)
	LoginById(id string, device ...string) (string, error)
	LoginByModel(id string, loginModel *model.Login, ctx ...ctx.Context) (string, error)

	Logout(ctx ctx.Context) error
	LogoutById(id string, device ...string) error
	LogoutByToken(token string) error

	IsLogin(ctx ctx.Context) (bool, error)
	IsLoginByToken(token string) (bool, error)
	IsLoginById(id string, device ...string) (bool, error)
	CheckLogin(ctx ctx.Context) error
	CheckLoginByToken(token string) error

	GetLoginId(ctx ctx.Context) (string, error)
	GetLoginIdByToken(token string) (string, error)
	GetId(ctx ctx.Context) string
	GetIdByToken(token string) string
	GetLoginCount(id string, device ...string) int

	// device manager api
	GetLoginDevices(id string) []string
	GetDeviceByToken(token string) string

	// refresh api
	GetRefreshToken(tokenValue string) string
	RefreshToken(refreshToken string, refreshModel ...*model.Refresh) (*model.RefreshRes, error)
	RefreshTokenByModel(refreshToken string, refreshModel *model.Refresh, ctx ...ctx.Context) (*model.RefreshRes, error)

	GetLoginCounts() (int, error)
	GetLoginTokenCounts() (int, error)

	Kickout(id string, device ...string) error
	Replaced(id string, device ...string) error

	// Banned banned api
	Banned(id string, service string, level int, time int64) error
	UnBanned(id string, services ...string) error
	IsBanned(id string, service string) bool
	GetBannedLevel(id string, service string) (int64, error)
	GetBannedTime(id string, service string) int64

	// Second auth api
	OpenSafe(token string, service string, time int64) error
	IsSafe(token string, service string) bool
	GetSafeTime(token string, service string) int64
	CloseSafe(token string, service string) error

	// Temp token api
	CreateTempToken(token string, service string, value string, timeout int64) (string, error)
	CreateTempTokenByStyle(style string, service string, value string, timeout int64) (string, error)
	GetTempTokenTimeout(service string, tempToken string) int64
	ParseTempToken(service string, tempToken string) string
	DeleteTempToken(service string, tempToken string) error

	GetRequestToken(ctx ctx.Context) string
	AddTokenGenerateFun(tokenStyle string, f model.HandlerFunc) error

	// QRCode api
	CreateQRCodeState(QRCodeId string, timeout int64) error
	GetQRCode(QRCodeId string) *model.QRCode
	GetQRCodeState(QRCodeId string) model.QRCodeState
	GetQRCodeTimeout(QRCodeId string) int64
	DeleteQRCode(QRCodeId string) error
	Scanned(QRCodeId string, loginId string) (string, error)
	ConfirmAuth(QRCodeTempToken string) error
	CancelAuth(QRCodeTempToken string) error

	// Access control api
	SetAuth(manager interface{})
	CheckRole(ctx ctx.Context, role string) error
	CheckPermission(ctx ctx.Context, permission string) error

	// Session api
	GetSession(id string) *model.Session
	DeleteSession(id string) error
	UpdateSession(id string, session *model.Session) error
	SetSession(id string, session *model.Session, timeout int64) error
}

type SyncedEnforcer added in v0.1.7

type SyncedEnforcer struct {
	*Enforcer
	// contains filtered or unexported fields
}

SyncedEnforcer wraps Enforcer and provides synchronized access

func NewSyncedEnforcer added in v0.1.7

func NewSyncedEnforcer(adapter persist.Adapter, params ...interface{}) (*SyncedEnforcer, error)

NewSyncedEnforcer creates a synchronized enforcer

func (*SyncedEnforcer) AddTokenGenerateFun added in v0.1.7

func (e *SyncedEnforcer) AddTokenGenerateFun(tokenStyle string, f model.HandlerFunc) error

func (*SyncedEnforcer) Banned added in v0.1.7

func (e *SyncedEnforcer) Banned(id string, service string, level int, time int64) error

func (*SyncedEnforcer) CancelAuth added in v0.1.7

func (e *SyncedEnforcer) CancelAuth(QRCodeTempToken string) error

func (*SyncedEnforcer) CheckLogin added in v0.1.7

func (e *SyncedEnforcer) CheckLogin(ctx ctx.Context) error

func (*SyncedEnforcer) CheckLoginByToken added in v0.1.7

func (e *SyncedEnforcer) CheckLoginByToken(token string) error

func (*SyncedEnforcer) CheckPermission added in v0.1.7

func (e *SyncedEnforcer) CheckPermission(ctx ctx.Context, permission string) error

func (*SyncedEnforcer) CheckRole added in v0.1.7

func (e *SyncedEnforcer) CheckRole(ctx ctx.Context, role string) error

func (*SyncedEnforcer) CloseSafe added in v0.1.7

func (e *SyncedEnforcer) CloseSafe(token string, service string) error

func (*SyncedEnforcer) ConfirmAuth added in v0.1.7

func (e *SyncedEnforcer) ConfirmAuth(QRCodeTempToken string) error

func (*SyncedEnforcer) CreateQRCodeState added in v0.1.7

func (e *SyncedEnforcer) CreateQRCodeState(QRCodeId string, timeout int64) error

func (*SyncedEnforcer) CreateTempToken added in v0.1.7

func (e *SyncedEnforcer) CreateTempToken(token string, service string, value string, timeout int64) (string, error)

func (*SyncedEnforcer) CreateTempTokenByStyle added in v0.1.7

func (e *SyncedEnforcer) CreateTempTokenByStyle(style string, service string, value string, timeout int64) (string, error)

func (*SyncedEnforcer) DeleteQRCode added in v0.1.7

func (e *SyncedEnforcer) DeleteQRCode(QRCodeId string) error

func (*SyncedEnforcer) DeleteSession added in v0.1.7

func (e *SyncedEnforcer) DeleteSession(id string) error

func (*SyncedEnforcer) DeleteTempToken added in v0.1.7

func (e *SyncedEnforcer) DeleteTempToken(service string, tempToken string) error

func (*SyncedEnforcer) EnableLog added in v0.1.7

func (e *SyncedEnforcer) EnableLog()

func (*SyncedEnforcer) GetAdapter added in v0.1.7

func (e *SyncedEnforcer) GetAdapter() persist.Adapter

func (*SyncedEnforcer) GetBannedLevel added in v0.1.7

func (e *SyncedEnforcer) GetBannedLevel(id string, service string) (int64, error)

func (*SyncedEnforcer) GetBannedTime added in v0.1.7

func (e *SyncedEnforcer) GetBannedTime(id string, service string) int64

func (*SyncedEnforcer) GetId added in v0.1.7

func (e *SyncedEnforcer) GetId(ctx ctx.Context) string

func (*SyncedEnforcer) GetIdByToken added in v0.1.7

func (e *SyncedEnforcer) GetIdByToken(token string) string

func (*SyncedEnforcer) GetLock added in v0.1.7

func (e *SyncedEnforcer) GetLock() *sync.RWMutex

GetLock return the private RWMutex lock

func (*SyncedEnforcer) GetLogger added in v0.1.7

func (e *SyncedEnforcer) GetLogger() log.Logger

func (*SyncedEnforcer) GetLoginCount added in v0.1.7

func (e *SyncedEnforcer) GetLoginCount(id string, device ...string) int

func (*SyncedEnforcer) GetLoginCounts added in v0.1.7

func (e *SyncedEnforcer) GetLoginCounts() (int, error)

func (*SyncedEnforcer) GetLoginId added in v0.1.7

func (e *SyncedEnforcer) GetLoginId(ctx ctx.Context) (string, error)

func (*SyncedEnforcer) GetLoginIdByToken added in v0.1.7

func (e *SyncedEnforcer) GetLoginIdByToken(token string) (string, error)

func (*SyncedEnforcer) GetLoginTokenCounts added in v0.1.7

func (e *SyncedEnforcer) GetLoginTokenCounts() (int, error)

func (*SyncedEnforcer) GetQRCode added in v0.1.7

func (e *SyncedEnforcer) GetQRCode(QRCodeId string) *model.QRCode

func (*SyncedEnforcer) GetQRCodeState added in v0.1.7

func (e *SyncedEnforcer) GetQRCodeState(QRCodeId string) model.QRCodeState

func (*SyncedEnforcer) GetQRCodeTimeout added in v0.1.7

func (e *SyncedEnforcer) GetQRCodeTimeout(QRCodeId string) int64

func (*SyncedEnforcer) GetRefreshToken added in v0.1.7

func (e *SyncedEnforcer) GetRefreshToken(tokenValue string) string

func (*SyncedEnforcer) GetRequestToken added in v0.1.7

func (e *SyncedEnforcer) GetRequestToken(ctx ctx.Context) string

func (*SyncedEnforcer) GetSafeTime added in v0.1.7

func (e *SyncedEnforcer) GetSafeTime(token string, service string) int64

func (*SyncedEnforcer) GetSession added in v0.1.7

func (e *SyncedEnforcer) GetSession(id string) *model.Session

func (*SyncedEnforcer) GetTempTokenTimeout added in v0.1.7

func (e *SyncedEnforcer) GetTempTokenTimeout(service string, tempToken string) int64

func (*SyncedEnforcer) GetTokenConfig added in v0.1.7

func (e *SyncedEnforcer) GetTokenConfig() config.TokenConfig

func (*SyncedEnforcer) GetType added in v0.1.7

func (e *SyncedEnforcer) GetType() string

func (*SyncedEnforcer) GetWatcher added in v0.1.7

func (e *SyncedEnforcer) GetWatcher() persist.Watcher

func (*SyncedEnforcer) IsBanned added in v0.1.7

func (e *SyncedEnforcer) IsBanned(id string, service string) bool

func (*SyncedEnforcer) IsLogEnable added in v0.1.7

func (e *SyncedEnforcer) IsLogEnable() bool

func (*SyncedEnforcer) IsLogin added in v0.1.7

func (e *SyncedEnforcer) IsLogin(ctx ctx.Context) (bool, error)

func (*SyncedEnforcer) IsLoginById added in v0.1.7

func (e *SyncedEnforcer) IsLoginById(id string, device ...string) (bool, error)

func (*SyncedEnforcer) IsLoginByToken added in v0.1.7

func (e *SyncedEnforcer) IsLoginByToken(token string) (bool, error)

func (*SyncedEnforcer) IsSafe added in v0.1.7

func (e *SyncedEnforcer) IsSafe(token string, service string) bool

func (*SyncedEnforcer) Kickout added in v0.1.7

func (e *SyncedEnforcer) Kickout(id string, device ...string) error

func (*SyncedEnforcer) Login added in v0.1.7

func (e *SyncedEnforcer) Login(id string, ctx ctx.Context) (string, error)

func (*SyncedEnforcer) LoginById added in v0.1.7

func (e *SyncedEnforcer) LoginById(id string, device ...string) (string, error)

func (*SyncedEnforcer) LoginByModel added in v0.1.7

func (e *SyncedEnforcer) LoginByModel(id string, loginModel *model.Login, ctx ctx.Context) (string, error)

func (*SyncedEnforcer) Logout added in v0.1.7

func (e *SyncedEnforcer) Logout(ctx ctx.Context) error

func (*SyncedEnforcer) LogoutById added in v0.1.7

func (e *SyncedEnforcer) LogoutById(id string, device ...string) error

func (*SyncedEnforcer) LogoutByToken added in v0.1.7

func (e *SyncedEnforcer) LogoutByToken(token string) error

func (*SyncedEnforcer) OpenSafe added in v0.1.7

func (e *SyncedEnforcer) OpenSafe(token string, service string, time int64) error

func (*SyncedEnforcer) ParseTempToken added in v0.1.7

func (e *SyncedEnforcer) ParseTempToken(service string, tempToken string) string

func (*SyncedEnforcer) RefreshToken added in v0.1.7

func (e *SyncedEnforcer) RefreshToken(refreshToken string, refreshModel ...*model.Refresh) (*model.RefreshRes, error)

func (*SyncedEnforcer) RefreshTokenByModel added in v0.1.7

func (e *SyncedEnforcer) RefreshTokenByModel(refreshToken string, refreshModel *model.Refresh, ctx ctx.Context) (*model.RefreshRes, error)

func (*SyncedEnforcer) Replaced added in v0.1.7

func (e *SyncedEnforcer) Replaced(id string, device ...string) error

func (*SyncedEnforcer) Scanned added in v0.1.7

func (e *SyncedEnforcer) Scanned(QRCodeId string, loginId string) (string, error)

func (*SyncedEnforcer) SetAdapter added in v0.1.7

func (e *SyncedEnforcer) SetAdapter(adapter persist.Adapter)

func (*SyncedEnforcer) SetAuth added in v0.1.7

func (e *SyncedEnforcer) SetAuth(manager interface{})

func (*SyncedEnforcer) SetLogger added in v0.1.7

func (e *SyncedEnforcer) SetLogger(logger log.Logger)

func (*SyncedEnforcer) SetSession added in v0.1.7

func (e *SyncedEnforcer) SetSession(id string, session *model.Session, timeout int64) error

func (*SyncedEnforcer) SetType added in v0.1.7

func (e *SyncedEnforcer) SetType(t string)

func (*SyncedEnforcer) SetWatcher added in v0.1.7

func (e *SyncedEnforcer) SetWatcher(watcher persist.Watcher)

func (*SyncedEnforcer) UnBanned added in v0.1.7

func (e *SyncedEnforcer) UnBanned(id string, services ...string) error

func (*SyncedEnforcer) UpdateSession added in v0.1.7

func (e *SyncedEnforcer) UpdateSession(id string, session *model.Session) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL