2011-09-02 22 views
12

Tôi đang tạo một ứng dụng web bằng cách sử dụng Kim tự tháp với các phiên Beaker.
Tôi muốn để lưu trữ id người dùng trong request.session['user_id'] và một số thông tin khác kể từ ngày ký thành công và sau đó sử dụng nó để kiểm tra nếu người dùng đã đăng nhập:Sử dụng các phiên cốc để kiểm tra xem người dùng có được xác thực trong Pyramid

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

Câu hỏi đặt ra là: liệu có an toàn phải dựa vào phiên hoặc sẽ tốt hơn và/hoặc an toàn hơn để sử dụng số authenticated_userid() của Pyramid với remember()forget() từ pyramid.security?

Trả lời

11

Sử dụng pyramid_beaker và SessionAuthenticationPolicy, sau đó sử dụng pyramid.authentication.authenticated_userid() để kiểm tra xem họ có đăng nhập hay không. Nếu nó trả về None, thì không.

+0

Tôi nên làm gì để có được id người dùng thực tế với 'authenticated_userid()'? Tôi có nên vượt qua một số tiêu đề tôi nhận được từ 'remember()' không? –

+0

Thực hiện như chế độ xem "đăng nhập" tại đây: https://docs.pylonsproject.org/projects/pyramid/1.2/tutorials/wiki2/authorization.html#adding-login-and-logout-views .. đặt kết quả ghi nhớ vào tiêu đề phản hồi. –

+0

Tôi chỉ đang gọi 'remember()' và sau đó tất cả hoạt động chính xác khi cần. Dù sao, cảm ơn rất nhiều cho câu trả lời của bạn –

Các vấn đề liên quan