# 前后端分离

本项目使用前后端分离的开发模式,前端负责数据展示与用户交互,后端负责提供数据接口,前后端通过 API 进行数据交互。

本项目使用 jwt 解决前后端通信身份验证问题。

# 原理

用户通过账号密码登录时,后端校验成功后通过秘钥对用户id等信息进行加密生成一个具有时效性的 token 返回给前端。前端每次调用接口时,在接口 header 中携带该 token,后端接受后使用秘钥对其解密获取用户信息,若未被篡改,则可确认是该用户操作。

# 本项目中

本项目中接口 header 中均可携带 token ,若接口无需鉴权,会忽略该 token
对于有些可携带可不携带的接口,如影视详情接口,登录用户可获取本人是否收藏、评分等信息;若未登录,则不会返回这些信息;若 token 失效,则按未登录处理。

# 相关代码

# http 配置

import { HOST } from '../config'

function request(url, data = {}, method = 'GET') {
  let header = {}

  try {
    let token = wx.getStorageSync('token')

    if (token) {
      header = {
        // 注意,Bearer 后面用户 token 连接处有一个空格
        Authorization: 'Bearer ' + token
      }
    }
  } catch (e) {

  }

  return new Promise((resolve, reject) => {
    wx.request({
      url: HOST + url,
      data,
      method,
      header,
      success: res => {

      },
      fail: err => {

      }
    })
  })
}
上次更新: 2022-10-25 9:05:36 ├F10: PM┤