成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用戶登錄與 Token 管理全流程(JWT 實戰)

開發
在前后端分離項目中,用戶登錄常通過后端頒發的 JWT Token 實現身份校驗,配合本地緩存與請求頭傳遞,完成安全且高效的用戶系統。

在前后端分離項目中,用戶登錄常通過后端頒發的 JWT Token 實現身份校驗,配合本地緩存與請求頭傳遞,完成安全且高效的用戶系統。

通過前面的基礎學習,本文將帶你實現:

  • 登錄接口調用與 Token 獲取
  • Token 本地緩存與讀取
  • 請求時自動攜帶 Authorization
  • Token 失效統一處理

登錄流程 & 獲取 Token

后端登錄接口通常返回一個 access_token:

示例接口:

POST /api/login
請求:{ username, password }
響應:{ access_token, user_info }

頁面調用(如:pages/login.vue):

import { postRequest } from'@/utils/request.js'
import { set } from'@/utils/storage.js'

constlogin = async () => {
const res = awaitpostRequest('/login', {
    username: userName.value,
    password: password.value
  })

// 存儲 Token 和用戶信息
set('token', res.access_token)
set('userInfo', res.user_info)

  uni.showToast({ title: '登錄成功' })
  uni.switchTab({ url: '/pages/home/index' })  // 跳轉首頁
}

本地 Token 緩存

utils/storage.js 緩存工具封裝:

export constset = (key, value) => {
  uni.setStorageSync(key, value)
}

exportconstget = (key) => {
return uni.getStorageSync(key)
}

exportconstremove = (key) => {
  uni.removeStorageSync(key)
}
  • 登錄后使用 set('token', access_token) 存儲
  • 請求時使用 get('token') 獲取
  • 退出登錄時調用 remove('token')

自動攜帶 Authorization 請求頭

我們在通用請求模塊中加攔截處理:

utils/request.js:

import config from'@/config/index.js'
import { get, remove } from'./storage.js'

constrequest = (options = {}) => {
const token = get('token') || ''

returnnewPromise((resolve, reject) => {
    uni.request({
      url: config.baseURL + options.url,
      method: options.method || 'GET',
      data: options.data || {},
      header: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${token}`,
        ...(options.header || {})
      },
      success: (res) => {
        const { statusCode, data } = res

        // Token 失效統一處理
        if (statusCode === 401) {
          uni.showToast({ title: '登錄已過期,請重新登錄', icon: 'none' })
          remove('token')
          setTimeout(() => {
            uni.reLaunch({ url: '/pages/login/index' })
          }, 1000)
          returnreject(data)
        }

        if (statusCode === 200) {
          resolve(data)
        } else {
          uni.showToast({ title: data.message || '請求失敗', icon: 'none' })
          reject(data)
        }
      },
      fail: (err) => {
        uni.showToast({ title: '網絡異常', icon: 'none' })
        reject(err)
      }
    })
  })
}
  • 自動注入 Authorization: Bearer token ,這個Bearer+空格按自己的后端實際需求添加
  • Token 失效時自動跳轉登錄頁

退出登錄處理

import { remove } from '@/utils/storage.js'

const logout = () => {
  remove('token')
  remove('userInfo')
  uni.reLaunch({ url: '/pages/login/index' })
}

可以放在 “我的頁面” 里做登出按鈕邏輯。

總結一張圖

[ 登錄頁 ]
    ↓
[ 輸入賬號密碼 ]
    ↓
[ 請求登錄接口 ]
    ↓
[ 拿到 token + 存儲 ]
    ↓
[ 通用請求模塊 => 自動帶 token ]
    ↓
[ 401 失效自動跳登錄 ]
責任編輯:趙寧寧 來源: Ssoul肥魚
相關推薦

2025-01-15 09:21:01

2024-12-30 00:15:48

ASP.NET安全

2025-06-05 02:22:00

2025-01-02 09:02:09

Go項目Token

2025-04-16 08:00:00

FastAPIJWT用戶認證

2025-06-04 04:00:00

Spring掃碼登錄免密認證

2025-05-23 09:38:54

JWT開發Go

2011-08-02 18:12:29

AD

2021-12-30 08:13:00

JWT登錄令牌

2022-01-18 08:12:34

JWT鏈路微服務

2025-05-07 08:00:00

刷新令牌自動續簽FastAPI

2024-09-26 10:42:20

2021-08-09 08:53:30

HTTP狀態化協議

2021-09-01 10:15:15

前端cookiesession

2020-10-20 07:49:00

JWT(JSON We

2021-03-23 10:45:23

CookieSession前端

2020-10-27 09:00:00

NodeJS實現JWT

2023-12-08 12:12:21

2025-06-23 04:00:00

接口SpringToken

2012-12-13 11:03:43

IBMdW
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91成人免费 | 久久91| 日日爱av | www.毛片| 国产一区不卡 | 亚洲网在线 | 丁香综合 | 色888www视频在线观看 | xxxxx黄色片| 日韩中文久久 | 中文字幕一区二区三区乱码图片 | 日韩在线三级 | 欧美福利精品 | 亚洲一区久久久 | 欧美一级欧美三级在线观看 | 日韩欧美国产一区二区 | 久久国产一区二区 | 激情久久网 | 精品一区二区三区在线观看 | 91精品福利 | 久久国产高清 | 免费看一区二区三区 | av手机在线免费观看 | 国产免费一二三区 | 免费亚洲一区二区 | a国产视频 | 欧美综合国产精品久久丁香 | 免费的色网站 | 九九久久99 | 91亚洲欧美 | 成人午夜网站 | 久久999| 日韩成人一区 | 成人午夜视频在线观看 | 国产视频第一页 | 日本久久久久久久久 | 日本在线播放 | 18av在线播放 | 国产ts人妖一区二区三区 | 韩国精品在线观看 | 日本一区视频在线观看 |