首先要知道,微信登录和获取手机号、获取用户信息是相互独立的过程,接下来分开讲解这三个东西,内容很干,只用文字描述,认真看、跟着做就行,没有花里胡哨
uniapp微信登录流程
前端使用uni.login方法获取code(用户的登录凭证)发送给后端后端使用这个code请求code2Session这个接口: https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html获取到openid等信息后端根据openid判断用户是否已经注册,如果已经注册则直接登录,否则可能需要额外的注册流程最后,后端返回状态给前端,前端进行存储即可
获取手机号
前端uniapp的button组件,设置open-type属性为getPhoneNumber,在回调函数@getphonenumber中可以拿到code(用于换取手机号的临时凭证)、encryptedData(加密数据,包含手机号)、iv(加密算法的初始向量)等数据发送给后端,其实在最新的获取用户手机号的方法中,encryptedData和iv已经不需要了,传不传都无所谓后端先通过这个接口:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html
获取access_token然后结合这个code请求getPhoneNumber这个接口:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-info/phone-number/getPhoneNumber.html#%E8%B0%83%E7%94%A8%E6%96%B9%E5%BC%8F
就可以获取用户手机号
获取用户信息
前端使用uni.getUserInfo接口:https://uniapp.dcloud.net.cn/api/plugins/login.html#getuserinfo直接就能获取到用户信息