|
|
@@ -305,71 +305,55 @@ func (self *BaseController) CheckWxUserSubscribe(sceneId int64) {
|
|
|
}
|
|
|
|
|
|
func checkWxUserLogin(ctx *context.Context) {
|
|
|
- wxUserId, ok := ctx.Input.Session(SessionWxUserKey).(int64)
|
|
|
- beego.BeeLogger.Warn("check wx_user wxUserId %d", wxUserId)
|
|
|
- if ok {
|
|
|
- _, ok := ctx.Input.Session(SessionUserKey).(int64)
|
|
|
- if !ok {
|
|
|
- // 如果微信用户登录了,且有绑定了user,则设置用户登录
|
|
|
- wxUser := user_model.GetWxUserById(wxUserId, true)
|
|
|
- //beego.BeeLogger.Warn("wx_user has login, ", wxUser)
|
|
|
- if wxUser != nil && int(wxUser.UserId) > 0 {
|
|
|
- ctx.Output.Session(SessionUserKey, wxUser.UserId)
|
|
|
+ //beego.BeeLogger.Info("show the request : %s from UserAgent: %s", ctx.Input.URI(), ctx.Input.UserAgent())
|
|
|
+ //检测 token 是否合法
|
|
|
+ var inputToken string
|
|
|
+ beego.BeeLogger.Warn("request authorizationData : %s", ctx.Request.Header.Get("Authorization"))
|
|
|
+ requestAuthordata := ctx.Request.Header.Get("Authorization")
|
|
|
+ if len(requestAuthordata) > 0 {
|
|
|
+ authorizationData := strings.SplitN(ctx.Request.Header.Get("Authorization"), " ", 2)
|
|
|
+ if len(authorizationData) != 2 {
|
|
|
+ errCode := &ErrCode{
|
|
|
+ Code: UserNeedLogin[0],
|
|
|
+ Msg: UserNeedLogin[1],
|
|
|
+ Redirect: "",
|
|
|
+ Data: nil,
|
|
|
}
|
|
|
- }
|
|
|
- } else {
|
|
|
- //beego.BeeLogger.Info("show the request : %s from UserAgent: %s", ctx.Input.URI(), ctx.Input.UserAgent())
|
|
|
- //检测 token 是否合法
|
|
|
- var inputToken string
|
|
|
- beego.BeeLogger.Warn("request authorizationData : %s", ctx.Request.Header.Get("Authorization"))
|
|
|
- requestAuthordata := ctx.Request.Header.Get("Authorization")
|
|
|
- if len(requestAuthordata) > 0 {
|
|
|
- authorizationData := strings.SplitN(ctx.Request.Header.Get("Authorization"), " ", 2)
|
|
|
- if len(authorizationData) != 2 {
|
|
|
+ //换成userNeedLogin
|
|
|
+ ctx.Output.SetStatus(403)
|
|
|
+ ctx.Output.JSON(errCode, true, true)
|
|
|
+ } else {
|
|
|
+ inputToken = authorizationData[1]
|
|
|
+ var wxUser *user_model.WxUser
|
|
|
+ user_token, err := token_model.ValidateToken(inputToken)
|
|
|
+ wxUser = user_model.GetWxUserById(user_token.Id, true)
|
|
|
+ if err != nil || wxUser == nil {
|
|
|
+ beego.BeeLogger.Warn("token error : %v", err)
|
|
|
+ // 验证 Token 无效
|
|
|
errCode := &ErrCode{
|
|
|
Code: UserNeedLogin[0],
|
|
|
Msg: UserNeedLogin[1],
|
|
|
Redirect: "",
|
|
|
Data: nil,
|
|
|
}
|
|
|
- //换成userNeedLogin
|
|
|
ctx.Output.SetStatus(403)
|
|
|
ctx.Output.JSON(errCode, true, true)
|
|
|
} else {
|
|
|
- inputToken = authorizationData[1]
|
|
|
- var wxUser *user_model.WxUser
|
|
|
- user_token, err := token_model.ValidateToken(inputToken)
|
|
|
- wxUser = user_model.GetWxUserById(user_token.Id, true)
|
|
|
- if err != nil || wxUser == nil {
|
|
|
- beego.BeeLogger.Warn("token error : %v", err)
|
|
|
- // 验证 Token 无效
|
|
|
- errCode := &ErrCode{
|
|
|
- Code: UserNeedLogin[0],
|
|
|
- Msg: UserNeedLogin[1],
|
|
|
- Redirect: "",
|
|
|
- Data: nil,
|
|
|
- }
|
|
|
- ctx.Output.SetStatus(403)
|
|
|
- ctx.Output.JSON(errCode, true, true)
|
|
|
- } else {
|
|
|
-
|
|
|
- ctx.Output.Session(SessionUserKey, wxUser.UserId)
|
|
|
- ctx.Output.Session(SessionWxUserKey, wxUser.Id)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- errCode := &ErrCode{
|
|
|
- Code: UserNeedLogin[0],
|
|
|
- Msg: UserNeedLogin[1],
|
|
|
- Redirect: "",
|
|
|
- Data: nil,
|
|
|
+ ctx.Output.Session(SessionUserKey, wxUser.UserId)
|
|
|
+ ctx.Output.Session(SessionWxUserKey, wxUser.Id)
|
|
|
}
|
|
|
- ctx.Output.SetStatus(401)
|
|
|
- ctx.Output.JSON(errCode, true, true)
|
|
|
- return
|
|
|
}
|
|
|
+ } else {
|
|
|
+ errCode := &ErrCode{
|
|
|
+ Code: UserNeedLogin[0],
|
|
|
+ Msg: UserNeedLogin[1],
|
|
|
+ Redirect: "",
|
|
|
+ Data: nil,
|
|
|
+ }
|
|
|
+ ctx.Output.SetStatus(401)
|
|
|
+ ctx.Output.JSON(errCode, true, true)
|
|
|
}
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
func checkUserLogin(ctx *context.Context) {
|