手把手程式實作分享系列:Django Simplejwt 客製化你的Token

Walter Chiu
Bandai的機器學習筆記
3 min readMay 19, 2020

會有這一篇的原因,是因為simple jwt裡面,預設的參數缺少了一個重要的指標IAT(Issued At) 也就是得到Token當下的時間,這個參數的用意是為了讓前端去監控使用者,用了這個Token多久,沒有他的話,會無法監控時間,去更新。另外大家也可以在裡面加入各式各樣有趣的參數,讓你的Token更強大。

Customizing token claims

其實程式碼沒有很複雜,在serializers跟Views的地方補一下就好了,以下範例順便產出IAT給大家看:

Views的部分,沒什麼特別的就是把serializers的地方抓過來。

最後別忘了設定url,不然你什麼東西都抓不到啦

這邊要注意的地方就是,記得import自己的views才能抓到剛剛上面設定的function

然後refreash的套件,有很多設定方式,下面可供參考

這樣就可以客製化出自己想要的JWT Token在django裡面了~

下面附上官網的文章

另外還有解碼jwt的網站

讓你客製化完之後可以自行確認一下

P.S 後續:

大家如果上網自己找資源寫這邊的話

可能會發現有二種寫法

一種就是官方跟我上述寫的方式

另一種是像下面這個寫法

這個寫法要注意的是 你多寫進去的資訊不會包進JWT函數中

不需要解碼就被得到資訊了

好奇的人可以自己玩玩看二者的不同

下面是REFERENCE

--

--

Walter Chiu
Bandai的機器學習筆記

台大電機博士候選人,主要學習電腦科學、資訊教育,關心各種時事議題,歡迎一起討論有趣的專題 dodo0095@hotmail.com