mirror of
https://github.com/tickstep/aliyunpan.git
synced 2025-02-09 10:47:16 +08:00
add token plugin callback for login routine #203
This commit is contained in:
parent
1c6f6c772c
commit
fb705365b1
@ -214,6 +214,17 @@ func DoLoginHelper(refreshToken string) (refreshTokenStr string, webToken aliyun
|
|||||||
|
|
||||||
// TryLogin 尝试登录,基础应用支持的各类登录方式进行尝试成功登录
|
// TryLogin 尝试登录,基础应用支持的各类登录方式进行尝试成功登录
|
||||||
func TryLogin() *config.PanUser {
|
func TryLogin() *config.PanUser {
|
||||||
|
// 获取当前插件
|
||||||
|
pluginManger := plugins.NewPluginManager(config.GetPluginDir())
|
||||||
|
plugin, _ := pluginManger.GetPlugin()
|
||||||
|
params := &plugins.UserTokenRefreshFinishParams{
|
||||||
|
Result: "success",
|
||||||
|
Message: "",
|
||||||
|
OldToken: "",
|
||||||
|
NewToken: "",
|
||||||
|
UpdatedAt: utils.NowTimeStr(),
|
||||||
|
}
|
||||||
|
|
||||||
// can do automatically login?
|
// can do automatically login?
|
||||||
for _, u := range config.Config.UserList {
|
for _, u := range config.Config.UserList {
|
||||||
if u.UserId == config.Config.ActiveUID {
|
if u.UserId == config.Config.ActiveUID {
|
||||||
@ -227,6 +238,13 @@ func TryLogin() *config.PanUser {
|
|||||||
r, e := h.GetRefreshToken(u.TokenId)
|
r, e := h.GetRefreshToken(u.TokenId)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
logger.Verboseln("try to login use tokenId error", e)
|
logger.Verboseln("try to login use tokenId error", e)
|
||||||
|
// login fail plugin callback
|
||||||
|
params.Result = "fail"
|
||||||
|
params.OldToken = u.RefreshToken
|
||||||
|
params.NewToken = ""
|
||||||
|
if er := plugin.UserTokenRefreshFinishCallback(plugins.GetContext(u), params); er != nil {
|
||||||
|
logger.Verbosef("UserTokenRefreshFinishCallback error: " + er.Error())
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
refreshToken, e := h.ParseSecureRefreshToken("", r.SecureRefreshToken)
|
refreshToken, e := h.ParseSecureRefreshToken("", r.SecureRefreshToken)
|
||||||
@ -242,16 +260,36 @@ func TryLogin() *config.PanUser {
|
|||||||
fmt.Println("Token重新自动登录成功")
|
fmt.Println("Token重新自动登录成功")
|
||||||
// save new refresh token
|
// save new refresh token
|
||||||
u.RefreshToken = refreshToken
|
u.RefreshToken = refreshToken
|
||||||
|
} else {
|
||||||
|
// login fail plugin callback
|
||||||
|
params.Result = "fail"
|
||||||
|
params.OldToken = u.RefreshToken
|
||||||
|
params.NewToken = ""
|
||||||
|
if er := plugin.UserTokenRefreshFinishCallback(plugins.GetContext(u), params); er != nil {
|
||||||
|
logger.Verbosef("UserTokenRefreshFinishCallback error: " + er.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
// success
|
// plugin param
|
||||||
|
params.Result = "success"
|
||||||
|
params.OldToken = u.RefreshToken
|
||||||
|
params.NewToken = webToken.RefreshToken
|
||||||
|
|
||||||
|
// success login, save new token and access token
|
||||||
|
u.RefreshToken = webToken.RefreshToken
|
||||||
u.WebToken = webToken
|
u.WebToken = webToken
|
||||||
|
|
||||||
// save
|
// save
|
||||||
SaveConfigFunc(nil)
|
SaveConfigFunc(nil)
|
||||||
// reload
|
// reload
|
||||||
ReloadConfigFunc(nil)
|
ReloadConfigFunc(nil)
|
||||||
|
|
||||||
|
// do plugin callback
|
||||||
|
if er := plugin.UserTokenRefreshFinishCallback(plugins.GetContext(u), params); er != nil {
|
||||||
|
logger.Verbosef("UserTokenRefreshFinishCallback error: " + er.Error())
|
||||||
|
}
|
||||||
|
|
||||||
return config.Config.ActiveUser()
|
return config.Config.ActiveUser()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user