func TestSaveOrUpdateOpenUser(t *testing.T) { openUser := new(entities.OpenUser) openUser.Age = 26 openUser.City = "beijing" openUser.Head = "www.baidu.com/header.png" openUser.Nick = "nick" openUser.OpenId = "openid" openUser.Province = "province" openUser.Sex = 2 openUser.Type = entities.OPEN_USER_TYPE_QQ services.SaveOrUpdateOpenUser(openUser) }
func (c *OpenUserController) QqToken() { code := c.GetString("code") var loginPageUrl = "/users/login" //获取token tokenRes, err := services.QueryToken(code) beego.Debug("****************tokenRes:", tokenRes, "****************") if nil != err { c.Redirect(loginPageUrl, 302) return } accessToken := tokenRes["access_token"] beego.Debug("****************accessToken:", accessToken, "****************") if len(accessToken) <= 0 { c.Redirect(loginPageUrl, 302) return } //获取openid openIdRes, err := services.QueryOpenId(accessToken) beego.Debug("****************openIdRes:", openIdRes, "****************") if nil != err { beego.Error(err) c.Redirect("login.html", 302) return } openId := openIdRes["openid"] if len(openId) <= 0 { beego.Error(errors.New("openid[" + openId + "] error")) c.Redirect(loginPageUrl, 302) return } //获取user_info openUser, err := services.OpenUserInfo(accessToken, openId) beego.Debug("err:", err, "userInfoRes:", openUser) if nil != err { beego.Error(err) c.Redirect(loginPageUrl, 302) return } err = services.SaveOrUpdateOpenUser(openUser) if nil != err { beego.Error(err) c.Redirect(loginPageUrl, 302) return } openUser, _ = services.OpenUser(openId, entities.OPEN_USER_TYPE_QQ) beego.Debug("openUser:"******"user", user) } else { c.SetSession("openUser", openUser) c.Redirect("/users/oauth_register", 302) return } c.Redirect("/", 302) }