使用flask_oidc和Keycloak登录我的应用程序时, 我收到的Cookie的标题在发出后的一个小时内过期。 这导致我的应用程序每小时重新加载并获取一个新的cookie。
我试图在Keycloak文档和flask_oidc中都找到一种解决方案,但没有找到解决方案。
在下面您可以找到Cookie标头的示例:
{
"alg": "HS256",
"exp": 1562495222,
"iat": 1562491622
}
我是否缺少一些需要配置的设置,以停止我的应用程序以保持每小时刷新一次?
答案 0 :(得分:0)
您是说Keycloak令牌到期吗?如果是这样,您可以在keycloak的管理面板中执行此操作: 选择适当的领域,进入回收设置(在左侧菜单上),然后选择选项卡“令牌”。在那里您可以更改它们的有效性。 检查屏幕截图:keycloak admin panel
编辑: 根据评论,我编辑了评论...您的问题也可能在Flask设置中。请检查此网页flask-jwt,在这里您还可以找到以下网址: JWT_ACCESS_TOKEN_EXPIRES
How long an access token should live before it expires. This takes any value that can be safely added to a datetime.datetime object, including datetime.timedelta, dateutil.relativedelta, or an int (seconds), and defaults to 15 minutes. Can be set to False to disable expiration.
我希望这会有所帮助。
答案 1 :(得分:0)
问题出在flask_oidc cookie_serializer中,事实证明它的cookie默认情况下为1小时。 我通过向其构造函数添加更长的到期值来对其进行设置。
oidc = OpenIDConnect(app)
oidc.cookie_serializer = TimedJSONWebSignatureSerializer(app.config['SECRET_KEY'], expires_in=longer_value)
这解决了我的问题。