微信小程序实现微信登录 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

微信小程序实现微信登录

发表时间:2020-9-26

发布人:葵宇科技

浏览次数:55

小程序登录

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。

登录流程时序
在这里插入图片描述
说明: 调用 wx.login() 获取 临时登录凭证 code ,并回传到开发者服务器。调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。 注意:会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。临时登录凭证 code 只能使用一次

小程序登录态

对于小程序来说,也需要一个唯一的标识符来区分用户,也就是session来保持会话,但是小程序没有cookie, 因此我们的唯一标识符会被存储在 localstorage 里面,每次发请求时,都会从localStorage 里面拿到这个唯一标识符,带在请求中。

微信的openid和code

在日常开发中,我们也经常听到 openid 和 code 的概念。

openid 用来标识这个唯一的微信用户,也就是说,一个微信用户相对于一个公众号(主体)的 openid 是唯一的,是不会变的。

那么我们如何才能知道 某一个用户的 openid 呢?

就是通过 code, 对于同一个用户,每次获取到的 code 都会改变,有有效期。我们把 code 作为参数,调用指定的微信服务器的接口,就可以拿到用户的 openid 。

那么我们如何才能拿到 code 呢?

  • 微信内h5页面的方法是:跳到指定的微信的承接页面,再跳回到本页面,url链接上就会被拼上 code 。
  • 小程序的方法是: 通过调用 wx.login() 方法,就可以拿到用户的 code

微信小程序登录体系

  1. 通过 wx.login() 获取到用户的code
  2. 通过 wx.request() 方法请求我们自己的后端,我们自己的服务端把 appid , appsecret 和 code 一起发送到微信服务器。 appid 和 appsecret 都是微信提供的,可以在管理员后台找到
  3. 微信服务器返回了 openid
  4. 我们在自己的数据库中,查找 openid ,如果没有查到记录,说明该用户没有注册,如果有记录,则继续往下走
  5. 我们生成一个第三方 session , 也就是 session_id , 也就是用户唯一标识符。在 redis 中,把 session_id 和用户的身份存进去。
  6. 返回 3rd_session
  7. 小程序把 3rd_session 存到 storage 里面
  8. 下次请求时,先从 storage 里面读取,然后带给服务端
  9. 服务端从 redis 里面找到 3rd_session 对应的记录,然后校验有效期

相关案例查看更多