Django自帶認證系統郵件模板自定義

2022-08-20 21:36:12 字數 2675 閱讀 1224

這幾天部署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(電子郵件正文模板):

someone asked for password reset for email }. follow the link below:

}://}

很明顯了,直接新增下面的檔案到registration/password_reset_email.html

你收到這封郵件是因為你請求重置平台的賬戶密碼

如果這個使用者名稱是屬於您的話: }

}://自己的網域名稱

}否則,請忽略這封郵件!

感謝使用我們的站點!

翔工作室技術組

現在就是說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自帶後台有站點設定,修改之後可以正常顯示郵件中}資訊

不過如果想要自定義郵件模板還是要如上文一樣新建html

django-registration-redux文件

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...