這幾天部署docker設定nginx遇到了郵件傳送問題
首先我的問題就是,在伺服器上部署docker之後
然後宿主機的nginx設定**
server
}
proxy_pass監聽了docker內網埠然後**使用了django自帶的認證系統
以及封裝好的django-registration-redux註冊模組
使用上面的nginx接收的郵件裡只有example.com
然後找到了乙個解決辦法
需要設定proxy_host,將host**為你的網域名稱
好吧.....我太菜不是很懂nginx配置,搜了好久,搞了好久
也問了一些人,我放棄了...........
(或許以後某一天就懂了....orzzz)
然後想到flask中模板可以自定義關於django自帶的認證系統講道理這個django應該也是可以的吧
然後又是一頓亂搜....
最後還是回歸到了官方文件
文件(看的翻譯版本)這樣寫的
以重置密碼為例
如果系統中不存在提供的電子郵件位址password_reset(
request,
template_name='registration/password_reset_form.html',
email_template_name='registration/password_reset_email.html',
subject_template_name='registration/password_reset_subject.txt',
password_reset_form=passwordresetform,
token_generator=default_token_generator,
post_reset_redirect=none,
from_email=none,
extra_context=none,
html_email_template_name=none,
extra_email_context=none
)
此檢視將不會傳送電子郵件,但使用者也不會收到任何錯誤訊息
這防止資訊洩露給潛在的攻擊者,如果在這種情況下要提供錯誤訊息
可以將 passwordresetform 子類化並使用 password_reset_form 引數
使用者被標記為不可用的密碼(請參閱 set_unusable_password() 不允許請求重置密碼以防止在使用ldap等外部認證源時發生誤操作)
注意,他們不會收到任何錯誤訊息,因為這將暴露其帳戶的存在,但沒有郵件也將被傳送
可選引數:
模板上下文:
電子郵件模板上下文:
示例 registration/password_reset_email.html(電子郵件正文模板):
很明顯了,直接新增下面的檔案到registration/password_reset_email.htmlsomeone asked for password reset for email }. follow the link below:
}://}
你收到這封郵件是因為你請求重置平台的賬戶密碼
如果這個使用者名稱是屬於您的話: }
}://自己的網域名稱
}否則,請忽略這封郵件!
感謝使用我們的站點!
翔工作室技術組
現在就是說site_name和domain是預設鏈結裡的**我把網域名稱寫死,就發不錯了..............
(這裡可以獲取 request.meta.http_host 獲取**,但是重置密碼的郵件還是獲取不到,我就還是寫死了./.)
同理,在註冊頁面的django-registration-redux官方文件處
沒找到..........預設模板的命名方式
然後,我就在萬能的github搜了一下,activation_email.html(忘了怎麼想到是搜這個詞的了)
就是這個命名,仿照上面的格式在registration新建就行了
如果要更改郵件標題雖然是個很笨的方法,但是幾天的問題解決了可以同一目錄新增activation_email_subject.txt和password_reset_subject.txt
2018/4/18更新
這個專案在djanago自帶後台有站點設定,修改之後可以正常顯示郵件中}資訊django-registration-redux文件不過如果想要自定義郵件模板還是要如上文一樣新建html
django自帶認證系統
使用者 許可權密碼雜湊系統 表單和檢視工具django內建認證系統不支援的板塊 密碼強度 我們通過第三方包解決 限制登入次數 自定義中介軟體解決 物件級許可權 django只支援到模型級 建立普通使用者 使用者資訊儲存在模型類的user表中。可以使用django auth 封裝的create use...
05 Django自帶的認證系統
我們在開發乙個 的時候,無可避免的需要設計實現 的使用者系統。此時我們需要實現包括使用者註冊 使用者登入 使用者認證 登出 修改密碼等功能,這還真是個麻煩的事情呢。django作為乙個完美主義者的終極框架,當然也會想到使用者的這些痛點。它內建了強大的使用者認證系統 auth,它預設使用 auth u...
Django自帶的使用者認證
auth模組 from django.contrib import auth auth模組中的方法 authenticate 提供了使用者認證功能,即驗證使用者名稱以及密碼是否正確,一般需要username password兩個關鍵字引數。如果認證成功 使用者名稱和密碼正確有效 便會返回乙個 use...