簡體   English   中英

如何使用LDAP3身份驗證保留所有將來請求的用戶名

[英]how to persist username for all future requests using LDAP3 authentication

我寫了一個login.views.py為LDAP3認證,並且應用程序是這樣的:一旦用戶成功登錄,將采取用戶與歡迎“用戶名”在將來所有的請求頁面的右上角顯示一個模板。 我對該登錄模塊的應用程序配置是__init__.py 有關用戶是否通過身份驗證的模板代碼的一部分在此處

使用Flask的開發服務器登錄后,上述所有代碼都會在以后的所有請求(應用程序的不同模塊)中保留用戶名。 但是,當我將應用程序實時部署到生產服務器(nginx,uwsgi)時 ,用戶名有時會保留 ,而其他時間則不會保留。

我在StackOverflow上關注了之前的兩個類似問題: 第一個問題第二個問題 ,但仍然無法理解來解決我的問題。

用戶成功登錄后,如何保留用戶的信息以用於將來的所有請求?

您不能在Flask應用中使用全局變量。 您有一個users來存儲從LDAP提取的用戶。 在開發過程中,這是“有效的”,因為開發服務器僅使用一個進程。 但是,在生產中,您最有可能在多個過程中運行該應用程序。 每個進程都有自己的users字典,因此只有在請求由與處理用戶登錄相同的進程處理請求時,才會加載用戶。

您需要將用戶數據存儲在與應用程序分開的某個地方,可以在每個請求期間查找該數據。 典型的示例是數據庫,但是在這種情況下,您使用的是LDAP,只需在加載程序功能中通過LDAP從ID中獲取用戶數據即可。 如果要避免對LDAP進行查詢,則需要其他一些外部存儲來存儲和獲取數據,例如數據庫,內存緩存,redis等。您也可以將用戶數據放入會話中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM