# JWT在使用過程中的注意事項
## `JWT`的幾個特點
(1)`JWT` 默認是不加密,但也是可以加密的。生成原始 Token 以后,可以用密鑰再加密一次。
(2)`JWT` 不加密的情況下,不能將秘密數據寫入`JWT`。
(3)`JWT` 不僅可以用于認證,也可以用于交換信息。有效使用 `JWT`,可以降低服務器查詢數據庫的次數。
(4)`JWT` 的最大缺點是,由于服務器不保存 session 狀態,因此無法在使用過程中廢止某個 token,或者更改 token 的權限。也就是說,一旦 `JWT` 簽發了,在到期之前就會始終有效,除非服務器部署額外的邏輯。
(5)`JWT` 本身包含了認證信息,一旦泄露,任何人都可以獲得該令牌的所有權限。為了減少盜用,`JWT` 的有效期應該設置得比較短。對于一些比較重要的權限,使用時應該再次對用戶進行認證。
(6)為了減少盜用,`JWT` 不應該使用 HTTP 協議明碼傳輸,要使用 `HTTPS` 協議傳輸。
> `JWT Token` 一旦簽發,就會在有效期內一直可用,無法在服務端廢止,當用戶進行登出操作,只能依賴客戶端刪除掉本地存儲的 `JWT Token`,如果需 要禁用用戶,單純使用 `JWT` 就無法做到了。
## 安全性相關
如果加強 `JWT` 的安全性? 總結以下幾點:
一定要保存好服務端的`secret`,防止泄露給客戶端。
縮短 `token 有效時間 使用安全系數高的加密算法` `token` 不要放在 `Cookie` 中,有 `CSRF`風險 使用 `HTTPS` 加密協議 對標準字段`iss`、`sub`、`aud`、`nbf`、`exp` 進行校驗
- 項目介紹
- 課前準備
- 前言
- APP端開發
- HBuildX快速創建uniapp項目
- UniAPP基本知識
- 官方組件練習
- uniapp代碼塊
- APP登錄頁面的制作
- 用戶注冊頁面制作
- 密碼找回頁面制作
- 計價頁面制作
- 詳情頁面制作
- 計價依據頁面制作
- VUE快速入門
- Vue在uniapp中的應用
- APP數據模擬
- uniAPP云打包
- UniAPP離線打包
- 后端開發
- ThinkPHP的快速入門
- thinkPHP6.*的安裝
- ThinkPHP6的入門介紹
- ThinkPHP6.0中的配置
- 入口文件隱藏
- 命令行工具
- Facade(門面)
- 數據遷移
- 數據填充
- 后端應用的創建
- 路由地址和Url地址的生成
- 后臺模板的引入
- 多入口文件的應用以及多入口文件的隱藏
- 后臺管理員模塊開發
- 管理員表的設計
- 管理員密碼的修改
- 驗證器的使用
- 管理員登錄功能的實現
- 后臺權限控制的實現
- 驗證碼的使用
- 后臺系統配置功能開發
- 數據表的分析與設計
- 系統參數配置部分代碼的編寫
- 類型列表模板的引入
- 配置類型添加
- 配置類型的列表顯示
- 類型的編輯與刪除
- 代碼的優化
- 后臺配置類型條目管理
- 會員管理模塊
- API接口開發規范和注意事項
- API接口的設計規范
- RestfulAPI
- API接口安全
- 簽名
- Postman工具的簡單介紹
- API接口應用的創建
- API接口域名部署
- API接口的版本控制
- API接口跨域問題
- API接口開發
- 用戶注冊接口開發
- 代碼的實現
- 完善用戶注冊接口
- 代碼的封裝
- 參數過濾
- 簽名驗證
- 代碼結構優化
- 數據驗證
- 自定義驗證規則
- 全局異常處理
- 異常處理接管
- 手動拋出異常
- 重寫HttpException異常類
- 短信接口開發
- 短信接口
- 阿里云短信服務接入
- 完善短信接口
- 完善用戶注冊接口并實現短信的驗證
- 用戶密碼找回接口開發
- 實現流程與核心代碼
- 問題處理
- 用戶登錄接口開發
- 基本代碼的實現
- 用戶登錄實現
- 用戶登錄核心代碼
- 用戶授權驗證
- JWT的使用
- JWT的結構
- JWT的安裝
- token的生成
- 驗證
- JWT使用中的注意事項
- 基礎參數接口開發
- API接口的應用
- APP用戶登錄的實現
- 代碼優化
- 用戶注冊的實現
- 密碼找回功能的實現
- 計價功能的實現
- 自動登錄的實現
- 用戶登錄功能限制
- 項目打包(正式包)
- 小程序適配
- 前期準備
- 小程序的調試
- 真機調試
- 多端適配
- ThinkPHP6.0的注意事項
- 關于TP6框架升級問題
- 自定義分頁樣式