When/where 应该在金字塔应用程序中验证 openid 令牌吗?

When/where should openid tokens be validated in a pyramid application?

我正在使用金字塔框架编写一个小型网络应用程序。对于身份验证,我使用云基础设施的一项服务,该服务为我提供了一个 javascript 网络令牌,我可以使用它来验证用户的身份。

我有点不确定如何将它与金字塔结合起来,特别是因为我发现的大多数示例要么是基于用户名-密码的身份验证框架,要么它们自己生成 JWT 令牌(我只是使用身份提供者使用的)。

不管怎样,在登录视图中,我目前的逻辑是这样的:

.....

user = validate_jwt_token_and_return_user(id_token, ** config)
if user:
    headers = remember(self.request, user.id)
    raise HTTPFound(location=next_url, headers=headers)

现在看来,我将用户 ID 存储为会话 cookie(?)并且用户访问下一个视图,用户 ID 是从 cookie 中获取的吗?

将 jwt_token 存储在 cookie 中并在下一次请求时使用它来检查用户的登录尝试是否有效不是更好吗?

当然,您可以将 JWT 令牌存储在 cookie 中。您选择身份验证策略 - 只需编写一个执行此操作的策略,而不是使用将其存储在会话中的策略。