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/get_my_service?_token=<TOKEN_RECEIVED>
を言う
/app/controller/login_take_token?email=abc.com&password=abc123
これは私達にログインに成功に必要な予想データを返します。
私の質問は、私たちがトークンを使用して、新しいアクティブ・トークンを取得するためにlogin_take_token
に電話をかけることができますよりも、トークンの有効期限が切れている場合、web2pyのドキュメントで説明したように、です。しかし、この以下の呼び出しではトークンは返されませんが、「トークンは期限切れです」という出力とともに400のBad Requestが返されます。
/app/controller/login_take_token?_token=<TOKEN_RECEIVED>
新しいトークンを取得するには、古いトークン(有効期限切れ)でどのように呼び出しを行うべきですか。現在のトークンがすでに有効期限が切れている場合は、どちらもトークンを認証しないでもリフレッシュすることができることを意味し、デフォルト、verify_expiration=True
ことで
よろしく