From 0bdcf72b0ce7d9d368396d8f8b984c47ec10f846 Mon Sep 17 00:00:00 2001 From: weloe <1345895607@qq.com> Date: Mon, 4 Dec 2023 00:38:27 +0800 Subject: [PATCH] refactor: simplify parameters --- enforcer.go | 18 +++++++++++------- enforcer_interface.go | 6 +++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/enforcer.go b/enforcer.go index 70513e0..3265c10 100644 --- a/enforcer.go +++ b/enforcer.go @@ -183,22 +183,26 @@ func (e *Enforcer) IsLogEnable() bool { } // Login login by id and default loginModel, return tokenValue and error -func (e *Enforcer) Login(id string, ctx ctx.Context) (string, error) { - return e.LoginByModel(id, model.CreateLoginModelByDevice(""), ctx) +func (e *Enforcer) Login(id string, ctx ...ctx.Context) (string, error) { + return e.LoginByModel(id, model.CreateLoginModelByDevice(""), ctx...) } func (e *Enforcer) LoginById(id string, device ...string) (string, error) { if len(device) > 0 && device[0] != "" { return e.LoginByModel(id, model.CreateLoginModelByDevice(device[0]), nil) } + return e.Login(id, nil) } // LoginByModel login by id and loginModel, return tokenValue and error -func (e *Enforcer) LoginByModel(id string, loginModel *model.Login, ctx ctx.Context) (string, error) { +func (e *Enforcer) LoginByModel(id string, loginModel *model.Login, c ...ctx.Context) (string, error) { if loginModel == nil { return "", errors.New("arg loginModel can not be nil") } + if len(c) == 0 { + c = []ctx.Context{nil} + } var err error var session *model.Session var tokenValue string @@ -225,7 +229,7 @@ func (e *Enforcer) LoginByModel(id string, loginModel *model.Login, ctx ctx.Cont if err != nil { return "", err } - err = e.responseRefreshToken(refreshToken, loginModel, ctx) + err = e.responseRefreshToken(refreshToken, loginModel, c[0]) if err != nil { return "", err } @@ -245,7 +249,7 @@ func (e *Enforcer) LoginByModel(id string, loginModel *model.Login, ctx ctx.Cont } // response token - err = e.ResponseToken(tokenValue, loginModel, ctx) + err = e.ResponseToken(tokenValue, loginModel, c[0]) if err != nil { return "", err } @@ -607,7 +611,7 @@ func (e *Enforcer) RefreshToken(refreshToken string, refreshModel ...*model.Refr return e.RefreshTokenByModel(refreshToken, m, nil) } -func (e *Enforcer) RefreshTokenByModel(refreshToken string, refreshModel *model.Refresh, ctx ctx.Context) (*model.RefreshRes, error) { +func (e *Enforcer) RefreshTokenByModel(refreshToken string, refreshModel *model.Refresh, ctx ...ctx.Context) (*model.RefreshRes, error) { if refreshModel == nil { return nil, errors.New("arg refreshModel can not be nil") } @@ -633,7 +637,7 @@ func (e *Enforcer) RefreshTokenByModel(refreshToken string, refreshModel *model. RefreshTokenTimeout: refreshModel.RefreshTokenTimeout, } - token, err := e.LoginByModel(refreshTokenSign.Id, login, ctx) + token, err := e.LoginByModel(refreshTokenSign.Id, login, ctx...) if err != nil { return nil, err } diff --git a/enforcer_interface.go b/enforcer_interface.go index c11852b..0ad2668 100644 --- a/enforcer_interface.go +++ b/enforcer_interface.go @@ -25,9 +25,9 @@ type IEnforcer interface { GetTokenConfig() config.TokenConfig // Login login api - Login(id string, ctx ctx.Context) (string, error) + 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) + LoginByModel(id string, loginModel *model.Login, ctx ...ctx.Context) (string, error) Logout(ctx ctx.Context) error LogoutById(id string, device ...string) error @@ -52,7 +52,7 @@ type IEnforcer interface { // 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) + RefreshTokenByModel(refreshToken string, refreshModel *model.Refresh, ctx ...ctx.Context) (*model.RefreshRes, error) GetLoginCounts() (int, error) GetLoginTokenCounts() (int, error)