【python入門】認証機能に苦戦!
こんにちは!
認証機能に苦戦しております。。ネットではさも当たり前のように「認証機能作ってみた」の記事、、挫けそうになりました。
でもコードと戦うことまる2日、やっと少しコード理解ができたので備忘録。
・djangoで初めから備わっているもの
ログイン
ログアウト
パスワード変更
パスワード再設定
上記ファイルについてはビュー・フォームが提供されている(ただしテンプレートは自作)
・備わってないもの
ユーザ新規登録
ユーザ情報変更
各ファイルの使い方
■ログイン機能
・urls.py
LoginViewはクラス汎用ビュー
https://qiita.com/felyce/items/7d0187485cad4418c073
つまりdjangoの元ファイルにここで使われているクラスの元があるという理解
・views.py
authenticateで認証にかけている
login()に値引き渡してログイン
■ログアウト
似た感じでLogoutViewを使う
■ユーザ登録
①自分でユーザ登録用のクラスを作る(django ジェネリックビューのCreateViewを継承したもの)
https://qiita.com/hayata-yamamoto/items/00072091caa5921fc819
②それかviews.pyにUserモデルのインスタンス作り、POSTデータを入れてsave()する関数作る
http://e-class.center.yuge.ac.jp/jdk_docs/django1.4/topics/auth.html
上記参考リンク様、ありがとうございます。
各書き方は基本的にここを参考にしました
https://docs.djangoproject.com/ja/2.2/topics/auth/default/#django.contrib.auth.authenticate
何が難しいかというと、使っている汎用ビューやら関数やらクラスやらの中身がわからないから何を使っているのかどう使えばいいのか分からない!
基本的に覚えるしかないのだろうか。
本によるとdjango-allauthというパッケージがあるらしい・・!何やら外部との連携もできるらしい!こちら使おうかな。(気づくの遅い)