소스 검색

validate token调整

abiao 4 년 전
부모
커밋
d03a65ca73
2개의 변경된 파일26개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      go/gopath/src/fohow.com/apps/controllers/permit_controller/permit_controller.go
  2. 24 0
      go/gopath/src/fohow.com/apps/init.go

+ 2 - 2
go/gopath/src/fohow.com/apps/controllers/permit_controller/permit_controller.go

@@ -217,12 +217,12 @@ func (self *PermitController) SaveWxuserInfo() {
 		self.ReturnError(403, apps.ParamsError, "", nil)
 	}
 
-	wxUId := self.GetCurrentWxUserId()
+	//wxUId := self.GetCurrentWxUserId()
+	wxUId := self.GetCurrentUserIdByToken()
 
 	beego.BeeLogger.Info("SaveWxuserInfo wxUId:%d", wxUId)
 
 	wxUser := user_model.GetWxUserById(wxUId, true)
-
 	if wxUser == nil {
 		self.ReturnError(403, apps.WxUserInfoError, "", nil)
 	}

+ 24 - 0
go/gopath/src/fohow.com/apps/init.go

@@ -268,6 +268,30 @@ func (self *BaseController) GetCurrentWxUser(useCache bool) *user_model.WxUser {
 	return u
 }
 
+//根据token解析userId
+func (self *BaseController) GetCurrentUserIdByToken() int64 {
+	return getCurrentUserIdByToken(self.Ctx)
+}
+
+//TODO校验是否微信客户端
+func getCurrentUserIdByToken(ctx *context.Context) int64 {
+	inputToken := ""
+	wxUserId := int64(0)
+	requestAuthordata := ctx.Request.Header.Get("Authorization")
+	if len(requestAuthordata) > 0 {
+		authorizationData := strings.SplitN(ctx.Request.Header.Get("Authorization"), " ", 2)
+		inputToken = authorizationData[1]
+	}
+	token_user, err := token_model.ValidateToken(inputToken)
+	if err == nil {
+		wxUser := user_model.GetWxUserById(token_user.Id, true)
+		if wxUser != nil {
+			wxUserId = wxUser.Id
+		}
+	}
+	return wxUserId
+}
+
 //sceneId, 关注场景id
 func (self *BaseController) CheckWxUserSubscribe(sceneId int64) {
 	beego.BeeLogger.Info("check wx_user subscribe")