|
|
@@ -196,7 +196,7 @@ func (self *PermitController) XcxAuthorize() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//小程序授权
|
|
|
+//小程序再次保存用户头像
|
|
|
func (self *PermitController) SaveWxuserInfo() {
|
|
|
params := self.GetString("userinfo")
|
|
|
type UserInfo struct {
|
|
|
@@ -220,36 +220,13 @@ func (self *PermitController) SaveWxuserInfo() {
|
|
|
err := json.Unmarshal([]byte(params), &info)
|
|
|
|
|
|
if err != nil {
|
|
|
- beego.BeeLogger.Error("XcxAuthorize err: %s, info:%s", err, info)
|
|
|
+ //beego.BeeLogger.Error("XcxAuthorize err: %s, info:%s", err, info)
|
|
|
self.ReturnError(403, apps.ParamsError, "", nil)
|
|
|
}
|
|
|
|
|
|
- sessionKey, _ := self.GetSession(apps.XcxSessionKey).(string)
|
|
|
- // beego.BeeLogger.Warn("sessionKey:%s", sessionKey)
|
|
|
- type EncryptedData struct {
|
|
|
- UnionId string `json:"unionId"`
|
|
|
- OpenId string `json:"openId"`
|
|
|
- }
|
|
|
-
|
|
|
- if sessionKey == "" {
|
|
|
- self.ReturnError(403, apps.UserNeedLogin, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- pc := helpers.WxBizDataCrypt{AppID: beego.AppConfig.String("WxFohowXcxAppId"), SessionKey: sessionKey}
|
|
|
- // beego.BeeLogger.Warn("EncryptedData:%s", info.EncryptedData)
|
|
|
- // beego.BeeLogger.Warn("Iv:%s", info.Iv)
|
|
|
- result, err := pc.Decrypt(info.EncryptedData, info.Iv, true) //第三个参数解释: 需要返回 JSON 数据类型时 使用 true, 需要返回 map 数据类型时 使用 false
|
|
|
- if err != nil {
|
|
|
- beego.BeeLogger.Error("xcx XcxAuthorize descrypt failed, err:%s", err)
|
|
|
- self.ReturnError(403, apps.XcxAuthorizeError, "", nil)
|
|
|
- }
|
|
|
- encryptedData := &EncryptedData{}
|
|
|
- json.Unmarshal([]byte(result.(string)), encryptedData)
|
|
|
- if encryptedData.UnionId == "" || encryptedData.OpenId == "" {
|
|
|
- self.ReturnError(403, apps.UserAuthorizeFailed, "", nil)
|
|
|
- }
|
|
|
+ wxUId := self.GetCurrentWxUserId()
|
|
|
+ wxUser := user_model.GetWxUserById(wxUId, true)
|
|
|
|
|
|
- wxUser := user_model.GetWxUserByUnionid(encryptedData.UnionId, false)
|
|
|
if wxUser == nil {
|
|
|
self.ReturnError(403, apps.WxUserInfoError, "", nil)
|
|
|
}
|
|
|
@@ -257,10 +234,13 @@ func (self *PermitController) SaveWxuserInfo() {
|
|
|
beego.BeeLogger.Warn("SaveWxuserInfo ")
|
|
|
wxUser.UploadHead(info.UserInfo.AvatarUrl)
|
|
|
type Ret struct {
|
|
|
- Result bool `json:"result"`
|
|
|
+ Result bool `json:"result"`
|
|
|
+ Head string `json:"head"`
|
|
|
}
|
|
|
|
|
|
- self.Data["json"] = &Ret{Result: true}
|
|
|
+ beego.BeeLogger.Info("save_wx_user_info err: %v ", wxUser)
|
|
|
+
|
|
|
+ self.Data["json"] = &Ret{Result: true, Head: wxUser.Head}
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|