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

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

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

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

3371閲覧

JWT認証の大まかな流れについて自分の想定があっているのかチェックいただきたいです

退会済みユーザー

退会済みユーザー

総合スコア0

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

1クリップ

投稿2017/07/05 01:01

編集2017/07/05 05:00

追記:質問の仕方がよくなかったので、修正をしました。

###背景
スマホアプリの場合、セッションが使えないので、トークンを使って認証をし、最近だとJWTを利用するのが主流なのかなと認識しています。スマホアプリでJWTを使うのであれば、WEBでもJWTを使うようにすることで認証の仕組みの構築を効率化したいと思っています。JWTを使った認証を実装する場合の、認証の流れの概要について自分なりに調べた内容を記載しますので、概要認識として問題ないかについて、よろしければチェックいただければ幸いです。

###私が想定しているJWT認証のフロー

(1) 新規登録時の流れ(メールアドレス+パスワードのケースを想定)

  • (ユーザ)メールアドレスとパスワードをユーザがフォームに入力・送信
  • (サーバ)ユーザテーブルにメールと暗号化したパスワードを保存
  • (サーバ)メアド確認用URLを作成し、メールアドレス宛に送信
  • (ユーザ)メールアドレス宛に確認URLが届くので、そのURLにアクセス
  • (サーバ)メアド確認完了後に、ユーザデータを有効化

(2) ログイン時の流れ

  • (ユーザ)上記で登録したメール+パスワードをログインフォームに入力・送信
  • (サーバ)メールとパスワードを検証し、問題なければJWTを発行
  • (ユーザ)JWTをローカルストレージに保存
  • (ユーザ)ローカルストレージにJWTが存在するか確認し、存在したらHTTPヘッダに付与してアクセス
  • (サーバ)JWTの検証がとおれば、JWT内からUserIdを取得し、該当ユーザでのログイン中であるとみなす

以上です。
どうぞ、宜しくお願いいたします。

追記:
自分で質問を修正していて、頭が整理できてきたことと、途中でこのQiitaのページを発見したことで、上記流れで概要としては間違っていないのかなと思えてきております。今後は具体的でわかりやすい質問をするよう心がけます。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/07/05 02:23

丸投げとの指摘をいただき、申し訳ありません。具体的なコードを知りたいわけではなく、JWTを利用する場合の認証の流れについて、考え方が合っているか教えてほしいと思っております。いかがでしょうか?
退会済みユーザー

退会済みユーザー

2017/07/05 04:25

使い方を読むなり、他の人の質問を見るなりして、質問を修正して下さい。話題として興味深いです。
退会済みユーザー

退会済みユーザー

2017/07/05 04:36

ありがとうございます。ちょっと今から修正してみます。
guest

回答1

0

ベストアンサー

初めてteratailを使っておりまして、どうも質問の仕方が悪かったようなので申し訳無さでいっぱいです。丸投げにならないように、一応自分が調べたことをここに書いておこうと思います。

JWTを使った認証の流れの考え方としては、上記で概要はあっているのかなと思いました。あっていると思う理由としては、下記ページにSPAでのJWTを使った認証について書いてあったからです。

JSON Web Tokenを使ってReactとReduxのSPAでログイン認証をする

JWTを作成する方法とか、具体的なところをこれから調べてやってみたいと思います。
失礼しました。

投稿2017/07/05 04:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/07/05 04:26

こちらは回答欄になります。質問の修正が可能ですので、追記してはいかがですか?ちなみに、Qiita の記事が元になっているようですが、その記事の正誤が知りたいということでしょうか? この追記があったとしても、丸投げっぽいです。。。
退会済みユーザー

退会済みユーザー

2017/07/05 04:40

やり方がまずくてすみません。。今から質問を修正してみます。
退会済みユーザー

退会済みユーザー

2017/07/05 05:02

質問を修正したのですが、自分の当初の疑問がQiitaのページの発見で晴れましたので、自己解決ボタンをおさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問