やりたいこと
公開前のWebアプリなどでBasic認証をかけたい場合があるかもしれません。
PHPなんかだと .htaccess
.htpasswd
でシュッとやれるのですが、Djangoだとうまくできなかったので備忘録を兼ねて。
導入
wsgi-basic-auth というライブラリがあったので入れました。
インストール
pip install wsgi-basic-auth
.env
+ WSGI_AUTH_CREDENTIALS=id:password
ここの id
と password
を好きに書き換えてください。
[project]/wsgi.py
from wsgi_basic_auth import BasicAuth
application = BasicAuth(application)
結果
こんな感じで簡単にBasic認証がかけられます。
特定の環境のみBasic認証をかけたい場合
django-environ を使用しました。
.env
+ APP_ENV=development
[project]/wsgi.py
import environ
env = environ.Env()
env.read_env('.env')
if env('APP_ENV') == 'development' :
from wsgi_basic_auth import BasicAuth
application = BasicAuth(application)