func (this *OAuthController) Get() { code := this.GetString("code") clientId := beego.AppConfig.String("github_client_id") clientSecret := beego.AppConfig.String("github_client_secret") oauthGithub := &oauth.GithubOAuth{} token, json, err := oauthGithub.GetData(clientId, clientSecret, code) if err != nil { this.Ctx.WriteString("Response Error! ") return } else { log.Blueln(json) } user := models.User{} oa := models.OAuth{} if this.Data["userIs"] == "guest" { result, usr := oa.GithubLogin(token, "github") if result { log.Blueln("github login success.") this.SetSession("username", usr.Username) this.SetSession("level", usr.Level) this.Redirect("/", 302) } else { log.Warnln("you have not register or bindding you github account.") this.Redirect("/register", 302) } } else { // have login, binding github oauth data := json.(map[string]interface{}) avatar := data["avatar_url"].(string) username := data["login"].(string) gojAvatar, _ := user.GetAvatar(0, this.Data["username"].(string), "", "") this.Data["title"] = "github绑定确认" this.Data["github_avatar"] = avatar this.Data["goj_avatar"] = gojAvatar this.Data["token"] = token this.Data["github_username"] = username this.TplNames = "user/github_binding_confirm.tpl" } }