refactor: add GetIdByToken(),GetTokenConfig(),GetWatcher(),GetLogger()

This commit is contained in:
weloe
2023-05-18 02:41:30 +08:00
parent 2d9f8124cc
commit c50b10f5f6
3 changed files with 28 additions and 7 deletions

View File

@@ -26,6 +26,14 @@ type Enforcer struct {
authManager interface{} authManager interface{}
} }
func (e *Enforcer) GetWatcher() persist.Watcher {
return e.watcher
}
func (e *Enforcer) GetLogger() log.Logger {
return e.logger
}
func NewDefaultAdapter() persist.Adapter { func NewDefaultAdapter() persist.Adapter {
return persist.NewDefaultAdapter() return persist.NewDefaultAdapter()
} }
@@ -186,7 +194,7 @@ func (e *Enforcer) LoginByModel(id string, loginModel *model.Login, ctx ctx.Cont
} }
// response token // response token
err = e.responseToken(tokenValue, loginModel, ctx) err = e.ResponseToken(tokenValue, loginModel, ctx)
if err != nil { if err != nil {
return "", err return "", err
} }
@@ -309,7 +317,7 @@ func (e *Enforcer) IsLoginById(id string) (bool, error) {
if session != nil { if session != nil {
l := session.TokenSignList l := session.TokenSignList
for _, tokenSign := range l { for _, tokenSign := range l {
str := e.adapter.GetStr(e.spliceTokenKey(tokenSign.Value)) str := e.GetIdByToken(tokenSign.Value)
if str == "" { if str == "" {
continue continue
} }
@@ -327,13 +335,17 @@ func (e *Enforcer) IsLoginById(id string) (bool, error) {
return false, error return false, error
} }
func (e *Enforcer) GetIdByToken(token string) string {
return e.adapter.GetStr(e.spliceTokenKey(token))
}
// IsLogin check if user logged in by token. // IsLogin check if user logged in by token.
func (e *Enforcer) IsLogin(ctx ctx.Context) (bool, error) { func (e *Enforcer) IsLogin(ctx ctx.Context) (bool, error) {
tokenValue := e.GetRequestToken(ctx) tokenValue := e.GetRequestToken(ctx)
if tokenValue == "" { if tokenValue == "" {
return false, nil return false, nil
} }
str := e.adapter.GetStr(e.spliceTokenKey(tokenValue)) str := e.GetIdByToken(tokenValue)
if str == "" { if str == "" {
return false, nil return false, nil
} }
@@ -351,7 +363,7 @@ func (e *Enforcer) CheckLogin(ctx ctx.Context) error {
func (e *Enforcer) GetLoginId(ctx ctx.Context) (string, error) { func (e *Enforcer) GetLoginId(ctx ctx.Context) (string, error) {
tokenValue := e.GetRequestToken(ctx) tokenValue := e.GetRequestToken(ctx)
str := e.adapter.GetStr(e.spliceTokenKey(tokenValue)) str := e.GetIdByToken(tokenValue)
if str == "" { if str == "" {
return "", errors.New("GetLoginId() failed: not logged in") return "", errors.New("GetLoginId() failed: not logged in")
} }
@@ -529,3 +541,7 @@ func (e *Enforcer) updateSession(id string, session *model.Session) error {
} }
return nil return nil
} }
func (e *Enforcer) GetTokenConfig() config.TokenConfig {
return e.config
}

View File

@@ -1,6 +1,7 @@
package token_go package token_go
import ( import (
"github.com/weloe/token-go/config"
"github.com/weloe/token-go/ctx" "github.com/weloe/token-go/ctx"
"github.com/weloe/token-go/log" "github.com/weloe/token-go/log"
"github.com/weloe/token-go/model" "github.com/weloe/token-go/model"
@@ -16,6 +17,7 @@ type IEnforcer interface {
IsLogin(ctx ctx.Context) (bool, error) IsLogin(ctx ctx.Context) (bool, error)
IsLoginById(id string) (bool, error) IsLoginById(id string) (bool, error)
GetLoginId(ctx ctx.Context) (string, error) GetLoginId(ctx ctx.Context) (string, error)
GetIdByToken(token string) string
GetLoginCount(id string) int GetLoginCount(id string) int
Replaced(id string, device string) error Replaced(id string, device string) error
@@ -37,9 +39,12 @@ type IEnforcer interface {
GetAdapter() persist.Adapter GetAdapter() persist.Adapter
SetAdapter(adapter persist.Adapter) SetAdapter(adapter persist.Adapter)
SetWatcher(watcher persist.Watcher) SetWatcher(watcher persist.Watcher)
GetWatcher() persist.Watcher
SetLogger(logger log.Logger) SetLogger(logger log.Logger)
GetLogger() log.Logger
EnableLog() EnableLog()
IsLogEnable() bool IsLogEnable() bool
GetSession(id string) *model.Session GetSession(id string) *model.Session
SetSession(id string, session *model.Session, timeout int64) error SetSession(id string, session *model.Session, timeout int64) error
GetTokenConfig() config.TokenConfig
} }

View File

@@ -47,8 +47,8 @@ func (e *Enforcer) createLoginToken(id string, loginModel *model.Login) (string,
return tokenValue, nil return tokenValue, nil
} }
// responseToken set token to cookie or header // ResponseToken set token to cookie or header
func (e *Enforcer) responseToken(tokenValue string, loginModel *model.Login, ctx ctx.Context) error { func (e *Enforcer) ResponseToken(tokenValue string, loginModel *model.Login, ctx ctx.Context) error {
if ctx == nil { if ctx == nil {
return nil return nil
} }
@@ -80,7 +80,7 @@ func (e *Enforcer) responseToken(tokenValue string, loginModel *model.Login, ctx
func (e *Enforcer) logoutByToken(token string) error { func (e *Enforcer) logoutByToken(token string) error {
var err error var err error
// delete token-id // delete token-id
id := e.adapter.GetStr(e.spliceTokenKey(token)) id := e.GetIdByToken(token)
if id == "" { if id == "" {
return errors.New("not logged in") return errors.New("not logged in")
} }