2

我已经按照这里的步骤https://github.com/thoughtbot/clearance/wiki/API-Authentication(插入下面)让我的 Rails API 应用程序进行身份验证。

我遇到了几个问题。第一个是那个"cookies" is undefined。所以我把它注释掉了。

现在我得到

NameError (undefined local variable or method 'form_authenticity_token' for #<BookmakersController:0x00007ffa6f370c78>):
app/controllers/application_controller.rb:12:in `authenticate_via_token'

我似乎无法解决最后一个问题。BookmakersController显然是我的控制器之一before_action :authenticate_via_token

我正在使用设置了授权标头的 Postman 向我的应用程序发送获取请求。

有什么想法可以解决这个错误吗?

class ApplicationController

protected

  def authenticate_via_token
    return unless api_token
    user = User.find_by_api_token(api_token)
    sign_in user if user
    cookies.delete(:remember_token) # so non-browser clients don't act like browsers and persist sessions in cookies
  end

private

  def api_token
    pattern = /^Bearer /
    header  = request.env["HTTP_AUTHORIZATION"]
    header.gsub(pattern, '') if header && header.match(pattern)
  end
end

class MyController < ApplicationController
  before_action :authenticate_via_token
end
4

0 回答 0