hanabiapp.views.auth

 1from flask import Blueprint, render_template, redirect, url_for, request, flash
 2from flask_login import login_user, logout_user, login_required, current_user
 3from ..models.user import User
 4from .. import db
 5
 6bp = Blueprint('auth', __name__)
 7
 8@bp.route('/login', methods = ['GET', 'POST'])
 9def login():
10    """
11    ユーザーのログインを処理する関数.
12
13    - 既にログインしている場合はホームページへリダイレクトする.
14    - POSTリクエストの場合,ユーザー名とパスワードを検証し,ログインを試みる.
15    - 認証に成功した場合はホームへリダイレクトし,失敗した場合はエラーメッセージを表示する.
16
17    Returns:
18        Response: 認証に成功すればリダイレクト,失敗すればログインページをレンダリング
19    """
20    if current_user.is_authenticated:
21        return redirect(url_for('home.home'))
22
23    if request.method == 'POST':
24        username = request.form['username']
25        password = request.form['password']
26        user = User.query.filter_by(username=username).first()
27
28        if user and user.check_password(password):
29            login_user(user, remember=request.form.get('remember'))
30            return redirect(url_for('home.home'))
31        else:
32            flash('Invalid username or password', 'login-failed')
33            return render_template('login.html'), 401
34
35    return render_template('login.html')
36
37@bp.route('/logout')
38def logout():
39    """
40    ユーザーをログアウトさせる関数.
41
42    Returns:
43        Response: ログアウト後,ログインページへリダイレクト
44    """
45    logout_user()
46    return redirect(url_for('auth.login'))
bp = <Blueprint 'auth'>
@bp.route('/login', methods=['GET', 'POST'])
def login():
 9@bp.route('/login', methods = ['GET', 'POST'])
10def login():
11    """
12    ユーザーのログインを処理する関数.
13
14    - 既にログインしている場合はホームページへリダイレクトする.
15    - POSTリクエストの場合,ユーザー名とパスワードを検証し,ログインを試みる.
16    - 認証に成功した場合はホームへリダイレクトし,失敗した場合はエラーメッセージを表示する.
17
18    Returns:
19        Response: 認証に成功すればリダイレクト,失敗すればログインページをレンダリング
20    """
21    if current_user.is_authenticated:
22        return redirect(url_for('home.home'))
23
24    if request.method == 'POST':
25        username = request.form['username']
26        password = request.form['password']
27        user = User.query.filter_by(username=username).first()
28
29        if user and user.check_password(password):
30            login_user(user, remember=request.form.get('remember'))
31            return redirect(url_for('home.home'))
32        else:
33            flash('Invalid username or password', 'login-failed')
34            return render_template('login.html'), 401
35
36    return render_template('login.html')

ユーザーのログインを処理する関数.

  • 既にログインしている場合はホームページへリダイレクトする.
  • POSTリクエストの場合,ユーザー名とパスワードを検証し,ログインを試みる.
  • 認証に成功した場合はホームへリダイレクトし,失敗した場合はエラーメッセージを表示する.
Returns:

Response: 認証に成功すればリダイレクト,失敗すればログインページをレンダリング

@bp.route('/logout')
def logout():
38@bp.route('/logout')
39def logout():
40    """
41    ユーザーをログアウトさせる関数.
42
43    Returns:
44        Response: ログアウト後,ログインページへリダイレクト
45    """
46    logout_user()
47    return redirect(url_for('auth.login'))

ユーザーをログアウトさせる関数.

Returns:

Response: ログアウト後,ログインページへリダイレクト