Tôi đang sử dụng Đăng nhập Flask và Hiệu trưởng để quản lý danh tính và vai trò. Nhu cầu của tôi được mô tả trực tiếp từ các tài liệu. Mã của tôi là ở đây:Đăng nhập và Nguyên tắc Flask - current_user là Ẩn danh mặc dù tôi đã đăng nhập
@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
# Set the identity user object
identity.user = current_user
# Add the UserNeed to the identity
if hasattr(current_user, 'get_id'):
print 'current_user ' + str(current_user.get_id())
identity.provides.add(UserNeed(current_user.get_id))
# Assuming the User model has a list of roles, update the
# identity with the roles that the user provides
if hasattr(current_user, 'roles'):
if current_user.roles:
for role in current_user.roles:
identity.provides.add(RoleNeed(role.name))
Trong mã đăng nhập của tôi, tôi làm điều này:
identity_changed.send(current_app._get_current_object(),
identity=Identity(user.user_id)
On đăng nhập, pháo hiệu như mong đợi. Trên mỗi lần tải trang tiếp theo, current_user là ẩn danh và không có id người dùng nào được nêu ra tất cả các chức năng @login_required hoạt động như thể người dùng đã đăng nhập. Đăng nhập Flask biết rằng người dùng đã đăng nhập nhưng vì lý do nào đó current_user không nhất quán.
Tôi có thiếu điểm cấu hình thiết yếu ở đâu đó không?
bạn có đang làm bất cứ điều gì với 'static_url_path = ''' trong init Flask của bạn không? Tôi đã chạy vào vấn đề tương tự, xem: http://stackoverflow.com/questions/16627384/flask-login-with-static-user-always-yielding-401-unauthorized Đó là bối rối như các phiên và đăng nhập công cụ nhìn ổn (người dùng có thể đăng nhập) nhưng tôi luôn có người dùng ẩn danh khi nhấn điểm cuối được bảo mật – craigb