質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

7573閲覧

flaskでログイン・ログアウト処理を作りたい。

Nishi214

総合スコア8

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/02/18 13:00

#実現したいこと。
pythonのflaskを使ってAPI開発の学習をしている初心者です。

タイトルどうりですが、
flaskでログイン・ログアウト処理をつくりたいです。
そのために、ネットで調べてみるとflask-loginやsessionというライブラリ?というのを見つけましたが、
情報が少なくよくわかりません。

#疑問点
①新規にアカウントみたいのを作るときのユーザー名やパスワードを保持の仕方。
②ログイン出来るかの参照。
②ログイン状態の表し方。
③ログアウトのさせ方。

#自分なりの実装方法。

C言語を少し学んでいたので、そのイメージで実装方法を考えて見ました。
①構造体を作りその中に記録させる。
②for文などで構造体の中身を検索する。
③構造体の中身が一致したら何かの変数をTrueにしてそれをif文で他のやつを囲む 例(if l==True)
④何かの変数をFalseに変えてelseでログイン画面へ持っていく。
例(else : return render_template('login.html'))

疑問点はライブラリ?を使えば解決するのかはたまた使わずに実装できるのかをよくわかっておらず、
拙い文章ですが、
教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

①新規にアカウントみたいのを作るときのユーザー名やパスワードを保持の仕方。

一般的には、ユーザのID、パスワード、所属、役割などはデータベースに保持します。
メモリ上に保持していると、プログラムを終了すると全て失われてしまいますし、
ファイルに保持していると件数が増えてきたときに性能問題で破綻します。

②ログイン出来るかの参照。

ユーザのIDをキーにしてデータベースを検索し、パスワードが一致するかどうかを確認して認証を行います。

②ログイン状態の表し方。

Cookie を使ってログイン状態をブラウザ側に覚え込ませます。ただし、このあたりは自分で実装するのではなく、 flask であれば session を使います。

③ログアウトのさせ方。

sessionを破棄することで、ブラウザの Cookie が無効になり、ログアウトします。

参考:Python の Flask でアプリケーションの認証部分を作ってみる
この記事では、データベースへのID,パスワードの保存やログイン時のパスワードの照合についてはコーディングされていませんが、追加するのはそれほど難しくないでしょう。

投稿2018/02/19 10:48

mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問