参考:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801(通知)
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81(文档)
提示:之前刚写完一个小程序登录方案没过多少天微信就改了,好吧,这🐦性我懂的,新方案自己先搞个吧
前言
上一篇小程序登录刚刚做好微信就改规则了
一、小程序登录
方案:前端能获取到用户名和头像和openid,就一次都传,后端验证openid是否存在过,没有新建个,有生成token返回
二、操作步骤
1.前端获取头像名称openid等
代码如下:
wx.login({
success:function(res1){
code <span class="token operator">=</span> res1<span class="token punctuation">.</span>code
<span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
wx<span class="token punctuation">.</span><span class="token function">getUserProfile</span><span class="token punctuation">(</span><span class="token punctuation">{<!-- --></span>
desc<span class="token punctuation">:</span> <span class="token string">'用于完善会员资料'</span><span class="token punctuation">,</span> <span class="token comment">// 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写</span>
success<span class="token punctuation">:</span> <span class="token punctuation">(</span>res<span class="token punctuation">)</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">{<!-- --></span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token number">2222</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token number">2222</span><span class="token punctuation">)</span>
this<span class="token punctuation">.</span><span class="token function">setData</span><span class="token punctuation">(</span><span class="token punctuation">{<!-- --></span>
userInfo<span class="token punctuation">:</span> res<span class="token punctuation">.</span>userInfo<span class="token punctuation">,</span>
hasUserInfo<span class="token punctuation">:</span> true
<span class="token punctuation">}</span><span class="token punctuation">)</span>
wx<span class="token punctuation">.</span><span class="token function">request</span><span class="token punctuation">(</span><span class="token punctuation">{<!-- --></span>
url<span class="token punctuation">:</span> <span class="token string">'http://127.0.0.1:12001/api/frontend/user/checkIdentity'</span><span class="token punctuation">,</span>
method<span class="token punctuation">:</span> <span class="token string">'POST'</span><span class="token punctuation">,</span>
header<span class="token punctuation">:</span> <span class="token punctuation">{<!-- --></span> <span class="token string">'content-type'</span><span class="token punctuation">:</span> <span class="token string">'application/x-www-form-urlencoded'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
data<span class="token punctuation">:</span> <span class="token punctuation">{<!-- --></span>
avatarUrl <span class="token punctuation">:</span> res<span class="token punctuation">.</span>userInfo<span class="token punctuation">.</span>avatarUrl<span class="token punctuation">,</span>
city <span class="token punctuation">:</span> res<span class="token punctuation">.</span>userInfo<span class="token punctuation">.</span>city<span class="token punctuation">,</span>
country <span class="token punctuation">:</span> res<span class="token punctuation">.</span>userInfo<span class="token punctuation">.</span>country<span class="token punctuation">,</span>
gender <span class="token punctuation">:</span> res<span class="token punctuation">.</span>userInfo<span class="token punctuation">.</span>gender<span class="token punctuation">,</span>
nickName <span class="token punctuation">:</span> res<span class="token punctuation">.</span>userInfo<span class="token punctuation">.</span>nickName<span class="token punctuation">,</span>
province <span class="token punctuation">:</span> res<span class="token punctuation">.</span>userInfo<span class="token punctuation">.</span>province<span class="token punctuation">,</span>
code<span class="token punctuation">:</span>code
<span class="token punctuation">}</span><span class="token punctuation">,</span>
success<span class="token punctuation">:</span> function <span class="token punctuation">(</span>res_user<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token number">2222</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> fail<span class="token punctuation">:</span> function <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'ajax失败了'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
2.后端操作流程
根据openid检测用户是否存在,不存在新增,存在生成token返回
总结
提示:这个微信改东西以后还是要留意些
