SendVerifyCode
This commit is contained in:
@@ -53,7 +53,6 @@ type IUser interface {
|
|||||||
GetEmail() string
|
GetEmail() string
|
||||||
GetName() string
|
GetName() string
|
||||||
GetAvatar() string
|
GetAvatar() string
|
||||||
IsAdmin() bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -196,13 +195,9 @@ func CreateCaptcha(width, height, captchaLen int) (captchaInfo *CaptchaInfo, err
|
|||||||
return captchaInfo, err
|
return captchaInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func SendVerifyCode(authToken, captchaID, captchaValue, authID string) (verfifyCode string, err error) {
|
func SendVerifyCode(authToken, captchaID, captchaValue, authID string) (verfifyCode string, authInfo *AuthInfo, err error) {
|
||||||
isReturnVerifyCode := false
|
|
||||||
if authToken != "" {
|
if authToken != "" {
|
||||||
authInfo, err2 := GetTokenInfo(authToken)
|
authInfo, err = GetTokenInfo(authToken)
|
||||||
if err = err2; err == nil {
|
|
||||||
isReturnVerifyCode = authInfo.IsAdmin()
|
|
||||||
}
|
|
||||||
} else if captchaID != "" && captchaValue != "" {
|
} else if captchaID != "" && captchaValue != "" {
|
||||||
if !(TestCaptchaMap[captchaID] == captchaValue || captcha.VerifyString(captchaID, captchaValue)) {
|
if !(TestCaptchaMap[captchaID] == captchaValue || captcha.VerifyString(captchaID, captchaValue)) {
|
||||||
err = ErrCaptchaIsNotOk
|
err = ErrCaptchaIsNotOk
|
||||||
@@ -215,13 +210,10 @@ func SendVerifyCode(authToken, captchaID, captchaValue, authID string) (verfifyC
|
|||||||
if handler := authers[authType]; handler == nil {
|
if handler := authers[authType]; handler == nil {
|
||||||
err = ErrIllegalAuthType
|
err = ErrIllegalAuthType
|
||||||
} else {
|
} else {
|
||||||
code, err2 := handler.SendVerifyCode(authID)
|
verfifyCode, err = handler.SendVerifyCode(authID)
|
||||||
if err = err2; err == nil && isReturnVerifyCode {
|
|
||||||
verfifyCode = code
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return verfifyCode, err
|
return verfifyCode, authInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 账号密码时:authIDType可能是:UserIDID,UserIDID2,UserIDMobile,UserIDEmail,authSecret是密码的sha1
|
// 账号密码时:authIDType可能是:UserIDID,UserIDID2,UserIDMobile,UserIDEmail,authSecret是密码的sha1
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ type UserBasic struct {
|
|||||||
Email string `json:"email"`
|
Email string `json:"email"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Avatar string `json:"avatar"`
|
Avatar string `json:"avatar"`
|
||||||
IsAdminData bool `json:"isAdmin"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserBasic) GetID() string {
|
func (u *UserBasic) GetID() string {
|
||||||
@@ -45,10 +44,6 @@ func (u *UserBasic) GetAvatar() string {
|
|||||||
return u.Avatar
|
return u.Avatar
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserBasic) IsAdmin() bool {
|
|
||||||
return u.IsAdminData
|
|
||||||
}
|
|
||||||
|
|
||||||
func (u *UserBasic) UpdateByIUser(user IUser) {
|
func (u *UserBasic) UpdateByIUser(user IUser) {
|
||||||
if user != nil {
|
if user != nil {
|
||||||
u.UserID = user.GetID()
|
u.UserID = user.GetID()
|
||||||
@@ -57,7 +52,6 @@ func (u *UserBasic) UpdateByIUser(user IUser) {
|
|||||||
u.Email = user.GetEmail()
|
u.Email = user.GetEmail()
|
||||||
u.Name = user.GetName()
|
u.Name = user.GetName()
|
||||||
u.Avatar = user.GetAvatar()
|
u.Avatar = user.GetAvatar()
|
||||||
u.IsAdminData = user.IsAdmin()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,10 +85,6 @@ func (user *User) GetAvatar() string {
|
|||||||
return user.Avatar
|
return user.Avatar
|
||||||
}
|
}
|
||||||
|
|
||||||
func (user *User) IsAdmin() bool {
|
|
||||||
return user.Type&(UserTypeOperator|UserTypeBoss) != 0
|
|
||||||
}
|
|
||||||
|
|
||||||
type StoreBoss struct {
|
type StoreBoss struct {
|
||||||
ModelIDCULD
|
ModelIDCULD
|
||||||
UserID string `orm:"size(48);column(user_id);unique" json:"userID"` // 内部唯一标识
|
UserID string `orm:"size(48);column(user_id);unique" json:"userID"` // 内部唯一标识
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/password"
|
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/password"
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
@@ -66,7 +67,13 @@ func (c *Auth2Controller) CreateCaptcha() {
|
|||||||
// @router /SendVerifyCode [post]
|
// @router /SendVerifyCode [post]
|
||||||
func (c *Auth2Controller) SendVerifyCode() {
|
func (c *Auth2Controller) SendVerifyCode() {
|
||||||
c.callSendVerifyCode(func(params *tAuth2SendVerifyCodeParams) (retVal interface{}, errCode string, err error) {
|
c.callSendVerifyCode(func(params *tAuth2SendVerifyCodeParams) (retVal interface{}, errCode string, err error) {
|
||||||
retVal, err = auth2.SendVerifyCode(params.AuthToken, params.CaptchaID, params.CaptchaValue, params.AuthID)
|
code, authInfo, err := auth2.SendVerifyCode(params.AuthToken, params.CaptchaID, params.CaptchaValue, params.AuthID)
|
||||||
|
if err == nil && authInfo != nil {
|
||||||
|
user, err2 := dao.GetUserByID(dao.GetDB(), "user_id", authInfo.GetID())
|
||||||
|
if err2 == nil && user.Type&(model.UserTypeBoss|model.UserTypeOperator) != 0 {
|
||||||
|
retVal = code
|
||||||
|
}
|
||||||
|
}
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user