FlaskとFlask-Loginを使用して、Webアプリケーションにユーザー認証を追加する方法を紹介します。この記事では、ログインしていないユーザーが見ることができない保護されたページを作成し、ユーザーがログインしてアクセスできるようにします。
Flask-Loginのインストール
まず、Flask-Loginをインストールします。これはPythonのパッケージ管理ツールであるpipを使用して行います。
pip install flask-login
ユーザーモデルの作成
次に、Flask-SQLAlchemyを使用してユーザーモデルを作成します。このモデルは、データベースに保存されるユーザー情報を表します。
from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin
db = SQLAlchemy()
class User(UserMixin, db.Model):
# ユーザーモデルの定義
pass
ログインとログアウト
Flask-Loginは、login_user
とlogout_user
関数を提供しています。これらの関数を使用して、ユーザーのログインとログアウトを簡単に管理できます。
from flask_login import login_user, logout_user
@app.route('/login')
def login():
# ユーザーのログイン処理
if valid():
login_user(user)
return redirect(request.args.get('next') or url_for('index'))
@app.route('/logout')
def logout():
# ユーザーのログアウト処理
logout_user()
ログインが必要なページ
@login_required
デコレーターを使用して、ログインが必要なページを簡単に管理できます。このデコレーターを使用すると、ログインしていないユーザーは指定したページにアクセスできなくなります。
from flask_login import login_required
@app.route('/protected')
@login_required
def protected():
return 'Logged in as: ' + current_user.id
以上が、FlaskとFlask-Loginを使用したユーザー認証の基本的な手順です。これらの手順を適切に組み合わせることで、独自のユーザー認証システムを構築できます。.