欢迎光临
我们一直在努力

苍穹外卖day06

概述:

  • 了解HttpClient的作用及应用场景。
  • 了解微信小程序开发及完成用户端登录功能代码开发。

  • HttpClient:

    HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

    HttpClient作用:(核心)

    • 发送HTTP请求
    • 接收响应数据

    HttpClient应用场景:

    当我们在使用扫描支付、查看地图、获取验证码、查看天气等功能时。

    HttpClient的核心API:

    • HttpClient:Http客户端对象类型,使用该类型对象可发起Http请求。

    • HttpClients:可认为是构建器,可创建HttpClient对象。

    • CloseableHttpClient:实现类,实现了HttpClient接口。

    • HttpGet:Get方式请求类型。

    • HttpPost:Post方式请求类型。

    HttpClient发送请求步骤:

    • 创建HttpClient对象

    • 创建Http请求对象

    • 调用HttpClient的execute方法发送请求

    微信小程序开发及登录功能开发:

    微信小程序开发:

    准备工作:

            根据资料视频,注册完善小程序信息及下载开发者工具,然后导入资料中的小程序代码到微信开发者工具。

    可能遇到的问题:

  • 最好不要直接安装资料中的微信开发者工具,会有bug,去官网下载最新的。
  • 微信开发者工具内发送请求(必须勾选):
  • 导入项目代码时,记得将默认的AppID更改为自己的,不要使用默认的。
  • 导入项目代码,将后端服务勾选不使用云服务。
  • 若自己的后端服务端口不是默认8080,根据common–>vendor.js–>搜索(ctrl+f)–>localhost,将端口号改为自己的。
  • 登录功能开发:

    微信登录流程: 

    步骤分析:

  • 小程序端,调用wx.login()获取code,就是授权码。

  • 小程序端,调用wx.request()发送请求并携带code,请求开发者服务器(自己编写的后端服务)。

  • 开发者服务端,通过HttpClient向微信接口服务发送请求,并携带appId+appsecret+code三个参数。

  • 开发者服务端,接收微信接口服务返回的数据,session_key+opendId等。opendId是微信用户的唯一标识。

  • 开发者服务端,自定义登录态,生成令牌(token)和openid等数据返回给小程序端,方便后绪请求身份校验。

  • 小程序端,收到自定义登录态,存储storage。

  • 小程序端,后绪通过wx.request()发起业务请求时,携带token。

  • 开发者服务端,收到请求后,通过携带的token,解析当前登录用户的id。

  • 开发者服务端,身份校验通过后,继续相关的业务逻辑处理,最终返回业务数据。

  • 业务规则及接口设计:

    业务规则:
    • 基于微信登录实现小程序的登录功能

    • 如果是新用户需要自动完成注册

    接口设计:

            通过微信登录的流程,如果要完成微信登录的话,最终就要获得微信用户的openid。在小程序端获取授权码后,向后端服务发送请求,并携带授权码,这样后端服务在收到授权码后,就可以去请求微信接口服务。最终,后端向小程序返回openid和token等数据。基于上述的登录流程,就可以设计出该接口的请求参数和返回数据。

    说明:请求路径/user/user/login,第一个user代表用户端,第二个user代表用户模块

    代码开发:

  • 在application.yml和application-dev.yml中配置为微信用户生成jwt令牌时使用的配置项和微信登录所需配置项。
  • UserController:
  • UserServiceImpl实现类:
  • UserMapper:
  • UserMapper.xml:
  • JwtTokenUserInterceptor:统一拦截用户端发送的请求并进行jwt校验(拦截器)
  • WebMvcConfiguration配置类中注册拦截器:
  • 赞(0)
    未经允许不得转载:171主机测评 » 苍穹外卖day06
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址