mysql自增id前端安全显示_mysql使用自增id遇到的坑
背景
最近在做一個項目,給APP提供接口,用戶認證機制采用了JWT(JSON Web Token)。項目開發完之后,給用戶測試(刪檔測試),測試完之后,清空了數據庫里的數據,之后又其他用戶注冊了。然后問題就來了,此時用戶id為1的用戶和以前為1的用戶已經不是同一個用戶了。但是APP內的token沒清除,以前用戶的id為1的用戶進入APP后顯示的是當前用戶id為用戶對應的信息。
解決方案
使用UUID,其中Java自帶了uuid類(java.util.UUID),PHP可以直接使用Composer包ramsey/uuid
UUID簡介
UUID含義是通用唯一識別碼 (Universally Unique Identifier),這是一個軟件建構的標準,也是被開源軟件基金會 (Open Software Foundation, OSF)
的組織應用在分布式計算環境 (Distributed Computing Environment, DCE) 領域的一部分。
UUID 的目的,是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人沖突的 UUID。
在這樣的情況下,就不需考慮數據庫建立時的名稱重復問題。目前最廣泛應用的 UUID,即是微軟的 Microsoft’s Globally Unique Identifiers (GUIDs),而其他重要的應用,則有 Linux ext2/ext3 檔案系統、LUKS 加密分割區、GNOME、KDE、Mac OS X 等等
其他坑
游戲服務器分區合區
別人很容易通過id猜測系統的數據
當你想遷移表結構到一個新環境的時候,默認自增值是從當前最大id下一個開始的,需手動改腳本
當我們對MySQL進行分表操作后,將不能依賴MySQL的自動增量來產生唯一ID了,因為數據已經分散到多個表中。
總結
Uid等其他主建,尤其是能標示特定實體的,都不要自增主鍵
主要的表盡量全部使用uuid
一些不重要的表(日志、一次性活動),為了開發方便,可以采用自增id
相關鏈接
總結
以上是生活随笔為你收集整理的mysql自增id前端安全显示_mysql使用自增id遇到的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python怎么改界面颜色_Python
- 下一篇: 阿里linux安装mysql_阿里云Li