MCPcopy Index your code
hub / github.com/TruthHun/BookStack / LoginBindWechat

Method LoginBindWechat

controllers/api/CommonController.go:80–147  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

78}
79
80func (this *CommonController) LoginBindWechat() {
81 form := &WechatBindForm{}
82 err := this.ParseForm(form)
83 if err != nil {
84 this.Response(http.StatusBadRequest, err.Error())
85 }
86
87 if form.Username == "" || form.Password == "" || form.Sess == "" {
88 this.Response(http.StatusBadRequest, messageBadRequest)
89 }
90
91 we, err := models.NewWechat().GetUserBySess(form.Sess)
92 if err != nil && err != orm.ErrNoRows {
93 beego.Error(err)
94 this.Response(http.StatusInternalServerError, messageInternalServerError)
95 }
96
97 if we.Id == 0 {
98 this.Response(http.StatusBadRequest, messageBadRequest)
99 }
100
101 member := &models.Member{}
102 if we.MemberId > 0 { // 已经绑定过
103 member, _ = member.Find(we.MemberId)
104 this.login(*member)
105 }
106
107 if form.Nickname != "" || form.Email != "" || form.RePassword != "" { //只要有其中任意一项不为空,则表示新注册
108 if form.Password != form.RePassword {
109 this.Response(http.StatusBadRequest, messageNotEqualTwicePassword)
110 }
111 if form.Nickname == "" || form.Email == "" || form.RePassword == "" {
112 this.Response(http.StatusBadRequest, messageBadRequest)
113 }
114 if we.AvatarURL == "" {
115 we.AvatarURL = conf.GetDefaultAvatar()
116 }
117 member = &models.Member{
118 Account: form.Username,
119 Password: form.Password,
120 Nickname: form.Nickname,
121 Avatar: we.AvatarURL,
122 Email: form.Email,
123 Status: 0,
124 Role: conf.MemberGeneralRole,
125 }
126 err = member.Add()
127 if err != nil {
128 this.Response(http.StatusBadRequest, err.Error())
129 }
130 // 执行绑定
131 we.Bind(we.Openid, member.MemberId)
132 } else {
133 *member, _ = models.NewMember().GetByUsername(form.Username)
134
135 if member.MemberId == 0 {
136 this.Response(http.StatusBadRequest, "您要绑定的用户不存在")
137 }

Callers

nothing calls this directly

Calls 11

FindMethod · 0.95
loginMethod · 0.95
AddMethod · 0.95
NewWechatFunction · 0.92
GetDefaultAvatarFunction · 0.92
NewMemberFunction · 0.92
PasswordVerifyFunction · 0.92
ResponseMethod · 0.80
GetUserBySessMethod · 0.80
GetByUsernameMethod · 0.80
BindMethod · 0.45

Tested by

no test coverage detected