我已按照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