7
4

More than 1 year has passed since last update.

Rails devise_token_authの各種メソッドについて

Last updated at Posted at 2021-10-02

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(リクエストに誤りがあった)が返ってきます。

例えば使い方は下のように使います。

memo_controller.rb
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

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4