mirror of
https://github.com/weloe/token-go.git
synced 2025-10-05 23:46:52 +08:00
feat: add CheckLogin() method to check if is login
This commit is contained in:
@@ -355,6 +355,14 @@ func (e *Enforcer) IsLogin(ctx ctx.Context) (bool, error) {
|
||||
return e.validateValue(str)
|
||||
}
|
||||
|
||||
func (e *Enforcer) CheckLogin(ctx ctx.Context) error {
|
||||
_, err := e.GetLoginId(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *Enforcer) GetLoginId(ctx ctx.Context) (string, error) {
|
||||
tokenValue := e.GetRequestToken(ctx)
|
||||
str := e.adapter.GetStr(e.spliceTokenKey(tokenValue))
|
||||
|
@@ -24,6 +24,8 @@ type IEnforcer interface {
|
||||
|
||||
GetRequestToken(ctx ctx.Context) string
|
||||
|
||||
CheckLogin(ctx ctx.Context) error
|
||||
|
||||
SetType(t string)
|
||||
GetType() string
|
||||
GetAdapter() persist.Adapter
|
||||
|
@@ -192,6 +192,10 @@ func TestEnforcer_Login(t *testing.T) {
|
||||
session := enforcer.GetSession("1")
|
||||
t.Logf("id = %v session.tokenSign len = %v", "1", session.TokenSignList.Len())
|
||||
|
||||
err = enforcer.CheckLogin(ctx)
|
||||
if err == nil {
|
||||
t.Errorf("CheckLogin() failed: CheckLogin() return nil")
|
||||
}
|
||||
login, err = enforcer.IsLoginById(loginId)
|
||||
if err != nil {
|
||||
t.Logf("%v error: %v", login, err)
|
||||
|
Reference in New Issue
Block a user