devise_token_authとは
ユーザー認証するためのgemのことです。
ユーザー認証のためにはdeviseを使います。
例えば新規登録、ログイン、ログアウト、アカウント削除、ゲストログインなどです。
⚫︎補足
ゲストログインとは
通常はログインをするときはそのアカウントの持ち主だけしかログインしませんが
ゲストログイン機能があるとアカウントの持ち主でなくてもログインできる機能です。
就職活動でポートフォリを作成する時でも、採用担当がアプリの中身を見れるので
よく使われるみたいです。
https://qiita.com/take18k_tech/items/35f9b5883f5be4c6e104
#devise_token_authで提供されているメソッド
公式ドキュメントに載っているcontrollerメソッドは下の4つです。
1 before_action :authenticate_user!
2 user_signed_in?
3current_user
4user_session
それぞれのメソッドを説明していきます。
●公式ドキュメント
https://devise-token-auth.gitbook.io/devise-token-auth/usage/controller_methods
https://sainu.hatenablog.jp/entry/2018/08/11/194319
before_action :authenticate_user!
これはユーザーがサイインしている時に、アカウントの持ち主のユーザーはサイインできるが、
そうでない場合はサイインできないというメソッドです。
アカウントの持ち主ではない場合は、ステータスコードの401(リクエストに誤りがあった)が返ってきます。
例えば使い方は下のように使います。
class MemoController < ApplicationController
before_action :authenticate_user!, except: [:index,:show]
def index
@user = User.all
end
end
ログインしたユーザーのみが使う設定です。
user_signed_in?
これはユーザーがちゃんとサイインしているかを確かめるメソッドです。
サイインしていない場合はfalseが返ります。
current_user
これはサイインしているユーザーデータを取得するためのメソッドです。
取得できない場合はnilが返ります。
devise_token_auth_group
複数のユーザーの認証機能がある時に使い、それぞれユーザーのグループとして扱い操作するメソッドです。
⚫︎参考資料
https://qiita.com/tomokazu0112/items/5fdd6a51a84c520c45b5
https://qiita.com/k4ssyi/items/3edcd0e5373a41677dee