如何在 Rails 中正确设置令牌认证?

How to set up Token Authentication properly in Rails?

我正在尝试为一个项目制作 API。我遵循了该视频中的说明 - https://www.youtube.com/watch?v=lgdUqtw4weg&t=165s

基本上在视频中,我为用户模型制作了一个标记列。并设置控制器,以便我可以使用 post 方法。 但是当我运行的时候POST。 我收到错误提示

{"error":"You need to sign in or sign up before continuing."}

我认为 Devise 正在干扰 POST 并发现用户在尝试访问非 public 页面时未登录。

我如何克服这个问题并获得令牌?

这是我的 api 控制器。

class Api::V1::UserSerializedController < ApplicationController
protect_from_forgery except: :index
respond_to :json


def create 


    user = User.where(email: params[:email]).first

    if user.valid_password?(params[:encrypted_password])
        render json: user.as_json(only: [:email, :authentication_token]),status: :created

    else 
        head(:unauthorized)
    end

end 

def show

end
end

您正在继承 ApplicationController,我猜您有 authenticate_user! 之前设置的操作。

您必须将父 class 更改为 ApiController 之类的东西(我更喜欢这个)

为您的 Api::V1::UserSerializedController

跳过此操作