This commit is contained in:
邹宗楠
2022-04-14 18:12:00 +08:00
parent ff10be5184
commit a80506cb43

View File

@@ -1,89 +1,89 @@
package douyin package douyin
//
import ( //import (
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" // "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
//
"git.rosy.net.cn/baseapi/platformapi/weixinapi" // "git.rosy.net.cn/baseapi/platformapi/weixinapi"
"git.rosy.net.cn/jx-callback/business/auth2" // "git.rosy.net.cn/jx-callback/business/auth2"
"git.rosy.net.cn/jx-callback/business/auth2/authprovider" // "git.rosy.net.cn/jx-callback/business/auth2/authprovider"
"git.rosy.net.cn/jx-callback/business/model" // "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals" // "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" // "git.rosy.net.cn/jx-callback/globals/api"
) //)
//
const ( //const (
AuthTypeTiktokMini = "tiktokmini" // 抖音小程序 // AuthTypeTiktokMini = "tiktokmini" // 抖音小程序
) //)
//
type TiktopMiniAuther struct { //type TiktopMiniAuther struct {
authprovider.DefAuther // authprovider.DefAuther
}
var (
AutherObjMini *TiktopMiniAuther
)
func init() {
AutherObjMini = new(TiktopMiniAuther)
auth2.RegisterAuther(AuthTypeTiktokMini, AutherObjMini)
}
func (a *TiktopMiniAuther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthBindEx, err error) {
globals.SugarLogger.Debugf("toktok mini VerifySecret jsCode:%s", code)
sessionInfo, err := api.TiktokApi.GetTiktokToken(code)
if err == nil {
if authBindEx, err = a.UnionFindAuthBind(AuthTypeTiktokMini, api.TiktokApi.GetAppID(), []string{AuthTypeTiktokMini}, sessionInfo.Data.OpenId, sessionInfo.Data.UnionId, sessionInfo); err == nil {
authBindEx.UserData = sessionInfo.Data
}
}
return authBindEx, err
}
// 特殊接口
func (a *TiktopMiniAuther) DecryptData(authInfo *auth2.AuthInfo, jsCode, encryptedData, iv string) (decryptedDataBase64 string, err error) {
globals.SugarLogger.Debugf("weixin mini DecryptData jsCode:%s, encryptedData:%s, iv:%s", jsCode, encryptedData, iv)
var sessionKey string
appID, jsCode := weixin.SplitJsCode(jsCode)
if jsCode != "" {
sessionInfo, err := getWxApp(appID).SNSCode2Session(jsCode)
if err == nil {
// if authBindEx, err := a.UnionFindAuthBind(AuthTypeMini, getWxApp(appID).GetAppID(), []string{AuthTypeMini}, sessionInfo.OpenID, "", nil); err == nil {
// if authBindEx.UserID != authInfo.GetID() {
// return "", fmt.Errorf("jsCode与token不匹配")
//} //}
//
//
//var (
// AutherObjMini *TiktopMiniAuther
//)
//
//func init() {
// AutherObjMini = new(TiktopMiniAuther)
// auth2.RegisterAuther(AuthTypeTiktokMini, AutherObjMini)
//}
//
//func (a *TiktopMiniAuther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthBindEx, err error) {
// globals.SugarLogger.Debugf("toktok mini VerifySecret jsCode:%s", code)
//
// sessionInfo, err := api.TiktokApi.GetTiktokToken(code)
// if err == nil {
// if authBindEx, err = a.UnionFindAuthBind(AuthTypeTiktokMini, api.TiktokApi.GetAppID(), []string{AuthTypeTiktokMini}, sessionInfo.Data.OpenId, sessionInfo.Data.UnionId, sessionInfo); err == nil {
// authBindEx.UserData = sessionInfo.Data
// }
// }
// return authBindEx, err
//}
//
//// 特殊接口
//func (a *TiktopMiniAuther) DecryptData(authInfo *auth2.AuthInfo, jsCode, encryptedData, iv string) (decryptedDataBase64 string, err error) {
// globals.SugarLogger.Debugf("weixin mini DecryptData jsCode:%s, encryptedData:%s, iv:%s", jsCode, encryptedData, iv)
// var sessionKey string
// appID, jsCode := weixin.SplitJsCode(jsCode)
// if jsCode != "" {
// sessionInfo, err := getWxApp(appID).SNSCode2Session(jsCode)
// if err == nil {
// // if authBindEx, err := a.UnionFindAuthBind(AuthTypeMini, getWxApp(appID).GetAppID(), []string{AuthTypeMini}, sessionInfo.OpenID, "", nil); err == nil {
// // if authBindEx.UserID != authInfo.GetID() {
// // return "", fmt.Errorf("jsCode与token不匹配")
// // }
// // } else {
// // return "", err
// // }
// sessionKey = sessionInfo.SessionKey
// } else { // } else {
// return "", err // return "", err
// } // }
sessionKey = sessionInfo.SessionKey // } else {
} else { // if authInfo.AuthBindInfo.Type != AuthTypeTiktokMini {
return "", err // // return "", ErrAuthTypeShouldBeMini
} // }
} else { // sessionKey = authInfo.AuthBindInfo.UserData.(string)
if authInfo.AuthBindInfo.Type != AuthTypeTiktokMini { // }
// return "", ErrAuthTypeShouldBeMini // decryptedData, err := weixinapi.SNSDecodeMiniProgramData(encryptedData, sessionKey, iv)
} // if err != nil {
sessionKey = authInfo.AuthBindInfo.UserData.(string) // return "", err
} // }
decryptedData, err := weixinapi.SNSDecodeMiniProgramData(encryptedData, sessionKey, iv) // return string(decryptedData), nil
if err != nil { //}
return "", err //
} //func (a *TiktopMiniAuther) GetUserType() (userType int8) {
return string(decryptedData), nil // return model.UserTypeStoreBoss
} //}
//
func (a *TiktopMiniAuther) GetUserType() (userType int8) { //func getWxApp(appID string) (miniApi *weixinapi.API) {
return model.UserTypeStoreBoss // miniApi = api.WeixinMiniAPI
} // if len(appID) > 0 && appID == api.WeixinMiniAppID2 {
// miniApi = api.WeixinMiniAPI2
func getWxApp(appID string) (miniApi *weixinapi.API) { // }
miniApi = api.WeixinMiniAPI // if len(appID) > 0 && appID == api.WeixinMiniAppIDsc {
if len(appID) > 0 && appID == api.WeixinMiniAppID2 { // miniApi = api.WeixinMiniAPIsc
miniApi = api.WeixinMiniAPI2 // }
} // return miniApi
if len(appID) > 0 && appID == api.WeixinMiniAppIDsc { //}
miniApi = api.WeixinMiniAPIsc
}
return miniApi
}