Files
jx-callback/business/auth2/authprovider/dingding/qrcode.go
邹宗楠 cd8c78cc08 1
2024-05-27 10:41:35 +08:00

60 lines
2.0 KiB
Go

package dingding
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/auth2"
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
)
type QRCodeAuther struct {
authprovider.DefAuther
}
var (
AutherObjQRCode *QRCodeAuther
)
func init() {
AutherObjQRCode = new(QRCodeAuther)
auth2.RegisterAuther(AuthTypeQRCode, AutherObjQRCode)
}
func (a *QRCodeAuther) VerifySecret(dummy, code string) (*auth2.AuthBindEx, error) {
userQRInfo, err := api.DingDingQRCodeAPI.GetUserInfoByCode(code)
globals.SugarLogger.Debugf("=========userQRInfo= := %s", utils.Format4Output(userQRInfo, false))
globals.SugarLogger.Debugf("=========err= := %v", err)
if err != nil {
return nil, err
}
tmp_userID, err := api.DingDingAPI.GetByUnionID(userQRInfo.UnionID)
globals.SugarLogger.Debugf("=========userQRInfo= := %s", utils.Format4Output(tmp_userID, false))
globals.SugarLogger.Debugf("=========err= := %v", err)
if err != nil {
return nil, err
}
userInfo, err := api.DingDingAPI.GetUser(tmp_userID.UserID)
globals.SugarLogger.Debugf("=========userInfo= := %s", utils.Format4Output(userInfo, false))
globals.SugarLogger.Debugf("=========err= := %v", err)
if err != nil {
return nil, err
}
authBindEx, err := a.UnionFindAuthBind(AuthTypeQRCode, api.DingDingQRCodeAPI.GetAppID(), []string{AuthTypeStaff, AuthTypeQRCode}, userQRInfo.OpenID, userQRInfo.UnionID, userQRInfo)
globals.SugarLogger.Debugf("=========authBindEx= := %s", utils.Format4Output(authBindEx, false))
globals.SugarLogger.Debugf("=========err= := %v", err)
if err != nil {
return nil, err
}
authBindEx.UserHint = &auth2.UserBasic{
UserID2: tmp_userID.UserID,
Mobile: utils.Interface2String(userInfo["mobile"]),
Email: utils.Interface2String(userInfo["email"]),
Name: utils.Interface2String(userInfo["name"]),
}
globals.SugarLogger.Debugf("=========authBindEx2= := %s", utils.Format4Output(authBindEx, false))
globals.SugarLogger.Debugf("=========err= := %v", err)
return authBindEx, err
}