微信小程序登录,实现思路分析:
- 用户触发登录操作:用户在微信小程序中点击“登录”按钮,触发登录流程。
- 调用微信登录接口:小程序端调用微信提供的登录接口(如
wx.login
),获取临时登录凭证(code)。 - 发送凭证到开发者服务器:小程序将临时登录凭证发送到开发者的服务器。
- 开发者服务器请求微信接口服务:开发者服务器使用自己的
AppID
、AppSecret
和接收到的临时登录凭证,向微信接口服务请求会话密钥(session_key)和openid。 - 开发者服务器返回登录态信息:开发者服务器将微信接口服务返回的会话密钥和openid等信息,结合自己的业务逻辑(如生成自定义登录态token),返回给小程序端。
- 小程序端保存登录态信息:小程序端接收到登录态信息后,将其保存在本地(如使用
wx.setStorageSync
),以便后续请求时使用。 - 完成登录:至此,用户登录流程完成,小程序可以使用保存的登录态信息进行后续的用户操作和数据请求。 在这个过程中,微信接口服务起到了桥梁的作用,连接了小程序和开发者服务器,确保了登录过程的安全性和可靠性。同时,开发者服务器也扮演了重要的角色,处理登录请求,与微信接口服务交互,并返回必要的登录态信息给小程序端。 需要注意的是,开发者在实现登录功能时,应遵守微信小程序的开发规范和安全要求,确保用户数据的安全和隐私保护。同时,也要根据自己的业务逻辑和需求,对登录流程进行适当的定制和优化。
微信接口服务在登录功能中扮演的角色是验证和授权。 在微信小程序的登录流程中,当用户触发登录操作后,小程序端会调用微信的登录接口获取一个临时的登录凭证(code)。这个code对于小程序端来说是加密的,无法直接解析出用户的身份信息。 此时,小程序端会将这个code发送到开发者的服务器。开发者的服务器再拿着这个code去请求微信接口服务。微信接口服务的作用就是验证这个code的有效性,并返回相应的用户信息(如openid和会话密钥session_key)给开发者的服务器。 通过这个过程,微信接口服务确保了登录请求的安全性和可靠性,同时也保护了用户的隐私。它扮演了一个验证和授权的角色,确保只有经过验证的请求才能获得用户的身份信息,从而实现了安全的登录功能。
小程序开发者服务器由小程序开发者自己负责搭建。在小程序的登录流程中,开发者服务器扮演着重要的角色。它接收小程序端发送的临时登录凭证(code),然后利用这个code去请求微信接口服务,获取用户的openid和会话密钥(session_key)等信息。开发者服务器还可以结合自己的业务逻辑,生成自定义的登录态token,并返回给小程序端。因此,开发者需要自行搭建和维护这个服务器,确保它能够安全、稳定地处理登录请求和返回登录态信息。在搭建开发者服务器时,开发者需要考虑到服务器的性能、安全性以及可扩展性等因素,以确保小程序登录功能的正常运行和用户体验的顺畅。
微信小程序登录
从这个图上,我们可以看出来,整个业务流程的入口就是参观预约,客户可以通过小程序线上预约到访时间,我们这一天主要讲的就是小程序端的预约功能的开发,不过如果客户想要预约成功,需要先登录小程序才行。所以,我们今天课程主要目标就是微信小程序登录和预约管理。具体的目标如下:
-
掌握小程序端的整体实现流程
-
掌握第三方接口的调用方式
-
独立完成微信小程序功能设计开发
-
掌握token的发放和验证方式
-
掌握参观预约的业务需求流程
-
独立完成参观预约涉及到的接口开发
2.2 实现思路分析
我们的主要实现思路可以根据微信小程序开放者平台给提供的实现思路,链接和流程如下:
微信小程序登录,官方文档:
登录流程图
注意点:
-
前端在小程序中集成微信相关依赖,当用户请求登录的同时,调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
-
开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
-
自定义登录态:后台服务器验证用户成功后,使用JWT生成一个token返回给前端,前端负责把token存储到小程序端的storage中,以后,从小程序中发起其他请求的时候,携带该token到后台验证
-
3)业务层
我们从整个流程可以看出来,在后台实现的过程中,我们需要调用两次微信开发者平台的接口来获取数据,一般像这种第三方接口的调用,我们通常都会封装一个单独的业务代码,使其更通用
如果当前项目不止一个小程序,就可以复用
我们可以先分析微信开发者平台的接口,接口地址:
-
获取用户openId
-
获取手机号
第一:可以从console中查看错误信息
第二:可以从Network中查看接口请求响应的情况,然后结合后台idea中的控制台来查看错误
2.5 拦截器校验token
通过我们刚才的流程,我们知道,用户登录成功以后,会返回前端一个token,这个token就是来验证用户信息的,当用户点击了小程序中的其他操作(需要登录),则会把token携带到请求头(header)中,方便后台去验证并获取用户信息,简易流程如下: