Clearance gem的Rails API模式有问题吗?

时间:2019-03-02 22:09:23

标签: ruby-on-rails clearance

我已按照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的控制器之一

我正在使用设置了Authorization标头的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

0 个答案:

没有答案