在Pyramid中使用beaker会话检查用户是否已认证

12 投票
1 回答
3373 浏览
提问于 2025-04-17 01:13

我正在用Pyramid框架创建一个网页应用,并且使用Beaker来管理用户会话。
我想在request.session['user_id']中存储用户的ID,以及一些其他信息,前提是用户成功登录。然后我想用这些信息来检查用户是否已经登录过。

if 'user_id' in request.session:
    # user signed in
else:
    # user not signed in or session is expired

我的问题是:依赖会话信息是否安全?还是说使用Pyramid的authenticated_userid(),配合remember()forget()这几个功能会更好、更安全呢?

1 个回答

11

使用 pyramid_beaker 和 SessionAuthenticationPolicy,然后用 pyramid.authentication.authenticated_userid() 来检查用户是否登录。如果返回 None,那就说明用户没有登录。

撰写回答