我有一个Web API
,可为用户提供需要在我的移动应用程序中显示的所有数据。
OWIN JWT Authentication
已实现且正在正常运行。有一个端点/oauth2/token
为用户提供令牌,并且所有端点都有[Authorize]
属性过滤器以对其进行验证。
令牌expiration
设置为 5 分钟。
登录会话通过单独的SESSION-ID
进行维护,该Keychain
存储在Token expiration time
中,并且也存储在服务器端以检查活动会话。每次用户在应用程序内部登录时,都会生成一个新令牌,并且用户可以访问API方法来获取数据。
如果用户将应用程序打开超过5分钟([Authorize]
),该怎么办?令牌已过期,将不可用,该如何刷新?而我应该何时刷新呢?
我了解了刷新令牌,但不确定如何处理(这是正确的选择吗?),因为如果令牌过期,import overpy
import pandas as pd
import numpy as np
df2 = pd.read_csv("/home/abc/xyz.csv")
df2.sort_values(by=['cvdt35_timestamp_s'],inplace=True)
df = df2.head(10)
api= overpy.Overpass()
box = 0.0005
queries = []
with open("xyz.csv") as f:
for row in df.index:
query = 'way('+str(df.gps_lat_dd.iloc[row]-box)+','+str(df.gps_lon_dd.iloc[row]-box)+','+str(df.gps_lat_dd.iloc[row]+box)+','+str(df.gps_lon_dd.iloc[row]+box)+') ["highway"]; (._;>;); out body;'
queries.append(query)
属性只会拒绝我的呼叫,而不会提供过期消息,我不知道它是过期的令牌还是无效的令牌。
答案 0 :(得分:1)
如果用户让应用程序打开超过5分钟该怎么办 (令牌到期时间)?令牌将不可用,因为它具有 过期了,该如何刷新?
如果我理解正确,请设置The token expiration to 5 minutes
,这意味着如果用户将应用程序打开超过5分钟,则该令牌不再有效。实际上,用户必须重新登录才能获取新令牌。
所以回到您的问题,在令牌过期的那一刻,我的建议是您可以present the loginPage and tell user that he has to login again to use the app
。
我不知道是否有另一种方式来获取新令牌,如果有,则可能不必重新登录。
此外,我发现了一个可能有帮助的线程:webapi-2-0-how-to-implement-refresh-jwt-token-when-access-token-expired