微信小程序用户授权

前提:

一般微信项目只要涉及到用户授权基本都是和用户唯一标识OpenID和用户在微信开发平台账号下的唯一标识UnionID有关,只要项目中需要管理、区分、建立小程序内的用户体系就必须要获取OpenIDUnionID

OpenIDUnionID区别

OpenID: 是微信生态用户唯一标识,开发者通过微信小程序(微信公众号)提供的静默授权拿到当前用户的 OpenID,小程序和公众号的OpenID是独立的。

UnionID: 是微信生态用户在微信开放平台帐号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台帐号),开发者可以通过UnionID来对不同微信项目下的用户进行关联。如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。。

按照表现形式不同分为静默授权和弹框授权

静默授权

不弹出授权页面,在用户无感中的情况下,获取到用户唯一标识,通过这个唯一标识映射到我们系统的userId就可以建立用户体系管理用户。

流程:

  • 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
  • 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key
  • 之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
  • 微信官方文档

注意事项:

  • 会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。
  • 临时登录凭证 code 只能使用一次
    对于只开发微信小程序这一个应用来说,拿到 openID 已经够用了,应用唯一标识就能很好的区分用户。

弹窗授权

需要弹出选项需要用户选择才能完成的授权操作,一般是为了获得用户手机号和用户信息等。

获取用户信息授权

获取用户手机号授权

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容