mirror of
https://github.com/weloe/token-go.git
synced 2025-10-05 07:26:50 +08:00
refactor: add GetIdByToken(),GetTokenConfig(),GetWatcher(),GetLogger()
This commit is contained in:
24
enforcer.go
24
enforcer.go
@@ -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
|
||||||
|
}
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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")
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user