SendVerifyCode时,如果是管理员,返回verifyCode
This commit is contained in:
@@ -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,UserIDEmail,authSecret是密码的sha1
|
||||
|
||||
Reference in New Issue
Block a user