認証機能のメソッド - Hashimoto-Noriaki/rails_media_sharing_app GitHub Wiki

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/Hashimoto-Noriaki/items/585bb58b80cf696e6697