成人免费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掃碼登錄免密認證

2011-08-02 18:12:29

AD

2025-05-23 09:38:54

JWT開發Go

2021-12-30 08:13:00

JWT登錄令牌

2022-01-18 08:12:34

JWT鏈路微服務

2024-09-26 10:42:20

2025-05-07 08:00:00

刷新令牌自動續簽FastAPI

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

2025-06-06 10:01:25

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线亚洲人成电影网站色www | 免费一级欧美在线观看视频 | 成人av电影在线 | 大陆一级毛片免费视频观看 | 一区二区视频免费观看 | 久久久久久久久久久久一区二区 | 亚洲免费视频网址 | 亚洲男女激情 | 亚洲国产精品视频一区 | 日本天天色 | 狠狠涩 | 国产激情偷乱视频一区二区三区 | 日本三级精品 | 一级片在线观看 | 全免一级毛片 | 日韩中文在线观看 | 精品一二区 | 国产一区欧美 | 国产高清视频 | 亚洲自拍偷拍视频 | 精品一区二区在线观看 | 成人在线精品视频 | 伊人久久精品 | 精品99在线 | www.国产精| 成人亚洲综合 | 亚洲视频在线看 | 欧美在线一区二区三区 | 精品视频免费在线 | 在线一区二区三区 | www.日韩| 日韩国产精品一区二区三区 | 国内精品一区二区三区 | 婷婷综合色| 国产性网| 欧美日韩精品免费观看 | 一级a性色生活片久久毛片波多野 | 在线观看成人精品 | 精品欧美乱码久久久久久1区2区 | 欧美日韩一区精品 | 欧美电影免费网站 |