SendVerifyCode时,如果是管理员,返回verifyCode

This commit is contained in:
gazebo
2020-01-06 12:13:28 +08:00
parent a07209c86d
commit 5d21158c7b
6 changed files with 32 additions and 14 deletions

View File

@@ -53,6 +53,7 @@ type IUser interface {
GetEmail() string
GetName() string
GetAvatar() string
IsAdmin() bool
}
const (
@@ -76,7 +77,7 @@ type CaptchaInfo struct {
}
type IAuther interface {
SendVerifyCode(authID string) (err error)
SendVerifyCode(authID string) (verifyCode string, err error)
// 负责验证secret并找到相应的用户返回password,email,mobile类型的不负责用户查找如果找不到用户UserID为空
VerifySecret(authID, authSecret string) (authBindEx *AuthBindEx, err error)
AddAuthBind(authBindEx *AuthBindEx, userName string) (err error)
@@ -195,9 +196,13 @@ func CreateCaptcha(width, height, captchaLen int) (captchaInfo *CaptchaInfo, err
return captchaInfo, err
}
func SendVerifyCode(authToken, captchaID, captchaValue, authID string) (err error) {
func SendVerifyCode(authToken, captchaID, captchaValue, authID string) (verfifyCode string, err error) {
isReturnVerifyCode := false
if authToken != "" {
_, err = GetTokenInfo(authToken)
authInfo, err2 := GetTokenInfo(authToken)
if err = err2; err == nil {
isReturnVerifyCode = authInfo.IsAdmin()
}
} else if captchaID != "" && captchaValue != "" {
if !(TestCaptchaMap[captchaID] == captchaValue || captcha.VerifyString(captchaID, captchaValue)) {
err = ErrCaptchaIsNotOk
@@ -210,10 +215,13 @@ func SendVerifyCode(authToken, captchaID, captchaValue, authID string) (err erro
if handler := authers[authType]; handler == nil {
err = ErrIllegalAuthType
} else {
err = handler.SendVerifyCode(authID)
code, err2 := handler.SendVerifyCode(authID)
if err = err2; err == nil && isReturnVerifyCode {
verfifyCode = code
}
}
}
return err
return verfifyCode, err
}
// 账号密码时authIDType可能是UserIDID,UserIDID2,UserIDMobile,UserIDEmailauthSecret是密码的sha1