實作 Flask 後端中的 Hash ID 需求

Hash ID

上個學期有個小組的學期作業,要寫一個雲端服務,
我們組的主題是實作出一個功能較多又比較兼顧 UI 的 when2meet

在實作分享功能的時候,
我們希望有一個頁面的資訊(一個叫做 meeting 的 model)可以用網址分享,
讓沒登入的人也可以看得到,
但是這樣的分享方式如果直接用 restful api 的標準的話,
直接使用 api/meetings/<meeting_id> (這裡 <meeting_id> 是整數)當網址來呼叫需要的 api,
會讓不相干的人直接在 <meeting_id> 打上數字戳進來

所以要使用 hash_id 來實作,
最簡單的方式是直接隨機 random 出一串字串當作 model 的 id,
但我總覺得這樣做很不舒服,
所以我選擇直接拿原來的 id 做 encrypt

Read more