teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

質問の趣旨が不明瞭だった点等を修正すべく、タイトル・本文を変更してみました。

2017/07/05 05:00

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- WEBでもスマホアプリでも使える認証方法について(JWT使方)
1
+ JWT認証の大まかな流れについて自分想定があってるのかチェックいただきたいです
body CHANGED
@@ -1,21 +1,19 @@
1
+ 追記:質問の仕方がよくなかったので、修正をしました。
2
+
1
3
  ###背景
2
- スマホアプリの場合、セッションが使えないので、トークンを使って認証をし、最近だとJWTを利用するのが主流なのかなと認識しています。スマホアプリでJWTを使うのであれば、WEBでもJWTを使うようにすることで認証の仕組みの構築を効率化したいと思っています。JWTを使った認証を調べていて、疑問思っことがありますので、下記についてよかったらご教示いただければ幸いです。
4
+ スマホアプリの場合、セッションが使えないので、トークンを使って認証をし、最近だとJWTを利用するのが主流なのかなと認識しています。スマホアプリでJWTを使うのであれば、WEBでもJWTを使うようにすることで認証の仕組みの構築を効率化したいと思っています。JWTを使った認証を実装する場合の、認証の流れの概要について自分なり調べ内容を記載しますので、概要認識として問題ないかについてろしければチェックいただければ幸いです。
3
5
 
4
- ###知りたこと
6
+ ###私が想定してるJWT認証のフロー
5
7
 
6
- 0. そもそも、WEBアプリケーションの認証で、セッションを使わずにJWTを使うケースというのは一般的でしょうか?(WEBアプリはSPAのようなJsでAPIにアクセスするようなものを想定しています)
7
- 0. メールアドレス+パスワードで認証する場合、JWTを利用した場合の認証フローは下記で合っていますでしょうか?
8
-
9
- 以下は、上記2の想定している認証フローになります。
10
-
11
- #### メールアドレス+パスワードで新規登録
8
+ (1) 新規登録時の流れ(メールアドレス+パスワードのケースを想定)
12
9
  - (ユーザ)メールアドレスとパスワードをユーザがフォームに入力・送信
13
10
  - (サーバ)ユーザテーブルにメールと暗号化したパスワードを保存
14
11
  - (サーバ)メアド確認用URLを作成し、メールアドレス宛に送信
15
12
  - (ユーザ)メールアドレス宛に確認URLが届くので、そのURLにアクセス
16
13
  - (サーバ)メアド確認完了後に、ユーザデータを有効化
17
14
 
15
+
18
- #### ログイン
16
+ (2) ログイン時の流れ
19
17
  - (ユーザ)上記で登録したメール+パスワードをログインフォームに入力・送信
20
18
  - (サーバ)メールとパスワードを検証し、問題なければJWTを発行
21
19
  - (ユーザ)JWTをローカルストレージに保存
@@ -23,4 +21,7 @@
23
21
  - (サーバ)JWTの検証がとおれば、JWT内からUserIdを取得し、該当ユーザでのログイン中であるとみなす
24
22
 
25
23
  以上です。
26
- どうぞ、宜しくお願いいたします。
24
+ どうぞ、宜しくお願いいたします。
25
+
26
+ 追記:
27
+ 自分で質問を修正していて、頭が整理できてきたことと、途中で[このQiitaのページ](http://qiita.com/nabeliwo/items/ac4b77324a9989e8e6bb)を発見したことで、上記流れで概要としては間違っていないのかなと思えてきております。今後は具体的でわかりやすい質問をするよう心がけます。