2012-12-12 34 views
8

Tôi đã xác thực khi làm việc với thông tin đăng nhập bằng bình, nhưng dường như không có vấn đề gì với thời gian cookie trong bình, phiên vẫn được xác thực. Tôi có thiết lập các biến cấu hình đúng cho đăng nhập bình không? Tôi đã thửbình-đăng nhập: Chrome bỏ qua cookie hết hạn?

app.REMEMBER_COOKIE_DURATION = datetime.timedelta(seconds=30) 
app.config["REMEMBER_COOKIE_DURATION"] = datetime.timedelta(seconds=30) 

Ngay cả khi tôi đóng trình duyệt, đợi một lúc và nhấn url cần được bảo vệ, tôi vẫn có thể truy cập. Điều này có liên quan đến this issue with chrome?. Nếu tôi xóa cookie của mình, tôi sẽ nhận được trang đăng nhập dự kiến. Tất cả điều này làm cho tôi nghĩ rằng thời gian chờ cookie không được tôn trọng.

Ngoài ra, PERMANENT_SESSION_LIFETIME làm gì trong bình?

Trả lời

17

REMEMBER_COOKIE_DURATION được sử dụng cho chức năng "Nhớ thông tin đăng nhập của tôi", nghĩa là thời gian bạn nhớ người dùng đã đăng nhập ngay cả khi đã đóng trình duyệt. Cookie riêng biệt được sử dụng cho điều đó, tên có thể được đặt theo REMEMBER_COOKIE_NAME (theo mặc định là remember_token). Để buộc phiên đăng nhập sẽ hết hạn sau một thời gian (ngay cả khi trình duyệt vẫn giữ chạy), thiết lập PERMANENT_SESSION_LIFETIME nơi nào đó mà bạn giữ cài đặt ứng dụng của bạn:

PERMANENT_SESSION_LIFETIME = datetime.timedelta(minutes=30) 

Và theo quan điểm đăng nhập của bạn thiết lập session.permanent = True:

from flask import session 

@app.route('/login') 
def login(): 
    # ... 
    if login_user(user): 
     session.permanent = True 
     return redirect(request.args.get('next') or url_for('index')) 
    # ... 
+0

THanks! thêm session.permanent đã làm thủ thuật! – reptilicus

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