我試圖實現基於令牌的身份驗證,對Web2py上構建的一些REST API。我正在使用版本2.14.6(穩定)。正如文檔中提到的,我遵循了這些步驟,並能夠使用JWT驗證和檢索受認證保護的資源中的數據。我也做了以下步驟:Web2py基於JWT的身份驗證 - 刷新令牌
from gluon.tools import AuthJWT
myjwt = AuthJWT(auth, secret_key='secret', user_param="email")
def login_take_token():
return myjwt.jwt_token_manager()
@myjwt.allows_jwt()
@auth.requires_login()
def get_my_service():
my_code
所以用這個配置,我可以打了一個電話的功能「login_take_token」,也從「get_my_service」獲取所需的數據時,得到的令牌。下面是服務電話:
/app/controller/login_take_token?email=abc.com&password=abc123
這將返回美國令牌說
/app/controller/get_my_service?_token=<TOKEN_RECEIVED>
這將返回我們成功登錄所需的預期數據。
我的問題是,正如web2py文檔中所解釋的,如果令牌已過期,那麼我們可以使用該令牌並致電login_take_token
以獲取新的活動令牌。但是,這下面的調用不會返回任何標記,但只返回400錯誤請求,輸出「令牌已過期」。
/app/controller/login_take_token?_token=<TOKEN_RECEIVED>
應該如何與舊令牌(已過期)進行呼叫以獲取新令牌。
問候