質問編集履歴
1
文字の変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
(rails)
|
1
|
+
(rails)devise-token-authを試しているがtoken認証の仕組みがいまいち分からない
|
body
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
ただdeviseはsession認証である為、そのwebアプリをモバイルでも使用したい場合の展開が難しいと言うことで、冬休みを使ってtoken認証を試すべく、[devise_token_auth](https://devise-token-auth.gitbook.io/devise-token-auth/usage)を使用してアプリを作っています。
|
5
5
|
|
6
6
|
|
7
|
-
しかしtoken認証(
|
7
|
+
しかしtoken認証(devise-token-auth)の概念が掴めず、またどうtokenを用いて認証ありのwebアプリを作っていったらいいのか分かりません。
|
8
|
-
またdeviseと同じく
|
8
|
+
またdeviseと同じくdevise-token-authにもuser_signed_in?等のメソッドが用意されていますが、これがどのようにログインしたユーザーのレコードを取っているかが分かりません。
|
9
9
|
web上の情報ですとcurlやpostmanを叩いて、200が返ってきたね!という情報ばかりで、これをどうwebアプリ上で展開したら良いかということが分からず混乱しております。
|
10
10
|
またsession認証は認証が成功したらcookieにログイン情報を保存し、次回以降クライアントがサーバーにアクセスしたら、cookieの情報とサーバーが持っているsession情報と照合して本人かどうか担保するということが感覚的には分かりやすいのですが、token認証はどうも勝手が違うようでよく分からないです。
|
11
11
|
|
@@ -13,11 +13,11 @@
|
|
13
13
|
それを踏まえてまず第一の質問です。
|
14
14
|
|
15
15
|
**1.**
|
16
|
-
|
16
|
+
devise-token-authを用いて、ログイン(認証系処理へのpost)を行うとresponse headerには`access_token`が返ってくると思います。
|
17
17
|
access_tokenは飽くまでも認証に成功したという文字通りの印だと思いますが、これはブラウザ上、もしくはDBのどこかに保存したり保持する必要はあるのでしょうか?
|
18
18
|
tokenの情報はブラウザで保持せず、次の画面等に遷移する際、リクエストヘッダーにこのtokenを含めて使うと、token認証を説明しているウェブページには書いてあったのですが、
|
19
19
|
つまりログインしているかどうか担保するには何かの画面を見るたびにリクエストにこのaccess_tokenを含ませる、またサーバーからクライアント側に渡すといった処理を書かなきゃいけないのでしょうか?(例えばwebならjavscriptか何かで)
|
20
|
-
それとも
|
20
|
+
それともdevise-token-authがよしなにやってくれる仕組みを持っているのでしょうか?
|
21
21
|
|
22
22
|
またこれに含め第二の質問なのですが
|
23
23
|
|
@@ -27,7 +27,7 @@
|
|
27
27
|
@name = current_user.name
|
28
28
|
end
|
29
29
|
```
|
30
|
-
例えばuser_signed_in?はログインしているかどうかbooleanで返す、プレーンなdeviseでもお馴染みなメソッドだと思うのですが、
|
30
|
+
例えばuser_signed_in?はログインしているかどうかbooleanで返す、プレーンなdeviseでもお馴染みなメソッドだと思うのですが、devise-token-authでは`request`にaccess_tokenが含まれているかどうか特に何も処理を書かずとも判別してくれるメソッドと言う解釈でよろしいでしょうか?
|
31
31
|
|
32
32
|
|
33
33
|
長くなってしまいましたが、分からないことが分からないと言う感じの質問になってしまい大変恐縮です。
|