在devise_token_auth中创建令牌后有没有办法执行方法?我正在使用的代码获取生成的令牌,加密它并将其存储在另一个api中。当前代码有效,但它只生成最后一个令牌而不是当前令牌。由于当前方法在会话创建后执行而不是令牌创建。 我尝试执行的代码:
class SessionsController < DeviseTokenAuth::SessionsController
require "uri"
require "net/http"
after_action :authorization, only: [:create]
def authorization
token = request.headers["access-token"]
encrypted_token = Digest::SHA256.hexdigest(token)
client = request.headers["client"]
params = { "token": encrypted_token, "client": client }
Net::HTTP.post_form(URI.parse("http://localhost:3001/api_keys"), params)
puts params
puts "AUTHORIZATION"
end
end
答案 0 :(得分:0)
DeviseTokenAuth::SessionsController
控制器一样, Devise
使用成语:
module DeviseTokenAuth
class SessionsController < DeviseTokenAuth::ApplicationController
# ...
def create
# ...
yield @resource if block_given?
end
end
end
这允许子类“点击”到方法的流程中。
class SessionsController < DeviseTokenAuth::SessionsController
def create
super do |resource|
# this is executed after the resource is saved but before the response is sent.
end
end
end
如果那不是您想要的,那么您需要创建自己的create实现,因为代码是内联的。