APIをユーザーでも管理者でもないフロント側にのみ叩くことが出来るようにしたいです。
例えばですが。
ruby
1 2 before_action :authenticate_user! # ログインしているかどうかトークンでチェック。 3 4 def update 5 @user = User.find(params[:id]) 6 authorize @user # user.policy.rbへ 7 ActiveRecord::Base.transaction do 8 @user.update!(update_params) 9 end 10 render status: 200, json: { message: "ok" } 11 end 12
ruby
1 2class UserPolicy < ApplicationPolicy 3 4 def update 5 user.id == record.id # current_userとそのレコードのidが一致しているかどうか 6 end 7 8end
この場合であれば
ユーザーがログインしているかどうか。
そのユーザーかどうか。
を検証していると思います。
聞きたいこと
例えば...
お金の数量を保存したりするエンドポイントのように
フロント側の人しか叩けないようにするにはどうすればいいのでしょうか。
まず before_action :authenticate_user! ではアクセストークンがあるかどうか検証していると思います。
なのでログインしないとアクセストークンが発行されないです。
え、ではそれ以外のフロント側のみアクセスを許可するにはどうすればいいのか。
こんがらがってしまいおかしなことを言っていたらすみません。
宜しくお願いいたします。
あなたの回答
tips
プレビュー