feat: add CheckLogin() method to check if is login

This commit is contained in:
weloe
2023-05-10 15:20:52 +08:00
parent eb4edb54a2
commit a51ba879a1
3 changed files with 14 additions and 0 deletions

View File

@@ -355,6 +355,14 @@ func (e *Enforcer) IsLogin(ctx ctx.Context) (bool, error) {
return e.validateValue(str) 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) { 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.adapter.GetStr(e.spliceTokenKey(tokenValue))

View File

@@ -24,6 +24,8 @@ type IEnforcer interface {
GetRequestToken(ctx ctx.Context) string GetRequestToken(ctx ctx.Context) string
CheckLogin(ctx ctx.Context) error
SetType(t string) SetType(t string)
GetType() string GetType() string
GetAdapter() persist.Adapter GetAdapter() persist.Adapter

View File

@@ -192,6 +192,10 @@ func TestEnforcer_Login(t *testing.T) {
session := enforcer.GetSession("1") session := enforcer.GetSession("1")
t.Logf("id = %v session.tokenSign len = %v", "1", session.TokenSignList.Len()) 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) login, err = enforcer.IsLoginById(loginId)
if err != nil { if err != nil {
t.Logf("%v error: %v", login, err) t.Logf("%v error: %v", login, err)