2017-03-02 103 views
2

目前我正在爲我的django REST API使用JWT身份驗證。Django JWT和OAuth身份驗證和授權

但是從JWT庫中,我無法在過期後刷新令牌。 (5分鐘) https://github.com/GetBlimp/django-rest-framework-jwt

因此,我需要整合刷新令牌的OAuth 2.0和訪問令牌的JWT令牌。

如何爲我的REST框架集成JWT + OAuth 2.0。或任何樣本?

EX: https://github.com/GetBlimp/django-rest-framework-jwthttps://django-oauth-toolkit.readthedocs.io/en/latest/#

回答

0

,我們已經走了這條路線是增加令牌到期時間(可以說36小時),然後在達到一定的閾值時,(如12小時在令牌過期之前),從服務器請求一個新的令牌。

爲什麼36和12?這裏完全是假設的,但用戶可能每1.5天訪問一次網站,而刷新12小時的窗口讓他們在我們的網站外生活(這聽起來很瘋狂,但那是另一回事)。選擇似乎適合用戶行爲的小時數。嘗試找到一個時間,用戶可能會回到您的網站並在刷新窗口做出有教育的決定。當然,智威湯遜也有一個可刷新的時間限制,您可能會在某些申請中看到「未來30天簽到我」,然後用戶必須重新進行身份驗證。

安全明智嗎?在閱讀了一堆來自SO的答案之後,看起來有更長的到期期限並不會讓您的智威湯遜變得更加脆弱。如果您偏執,可以將舊的JWT列入黑名單(但仍有剩餘時間),但在大多數情況下,HTTPS應該已足夠。