uniapp开发微信小程序授权获取用户信息

首先调用微信的API方法wx.login() 获取 临时登录凭证code,通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。

一、获取临时登录凭证code,openid,unionid,session_key

1.获取临时登录凭证code

2.用 code 换取 openid,unionid 和 session_key

在获取到登录成功后微信返回的 code 后,我们要用 code 换取 session_key 和 openid 和 unionid 

换取方式有两种:

第一种不借助后端(不推荐)

不借助后端获取,你必须知道你小程序的 AppID(小程序ID)和 AppSecret(小程序密钥),这个可以在 微信公众平台里面,找到开发管理->开发设置 中看到,然后用AppID和AppSecret以及上一步获取到的code请求微信的auth.code2Session接口,获取openid 和 unionid 和 session_key

注意:这样做的话你的小程序的AppID和AppSecret会明文出现在前端代码中,有泄漏风险

第二种借助后端 

借助后端获取实际上就是让后端给你一个接口,你请求后端的接口,后端再去请求微信的 jscode2session,这样你前端只需要提交code 就可以了。AppID和AppSecret都是保存在后端,不容易泄漏。本文采用的就是第二种方法(注意采用第二种方法需要告诉后端你的AppID和AppSecret是多少,不然前后端不统一可能出现错误)

二、微信授权登录如何获取用户的头像,昵称和手机号呢?

1.获取用户的头像,昵称,直接调用微信的API方法:wx.getUserProfile()

用户允许后,该方法调用成功,可以获取到头像和昵称,但是获取不到用户的手机号

2.获取用户的手机号

从基础库 2.21.2 开始,对获取手机号的接口进行了安全升级,需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button组件的点击来触发。注意判断一下用户是否拒绝授权,如果拒绝授权,需要弹框提示用户重新授权。

你可能感兴趣的:(uniapp开发微信小程序授权获取用户信息)