我试图实现基于令牌的身份验证,对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>
应该如何与旧令牌(已过期)进行呼叫以获取新令牌。
问候