具有可变令牌过期的门卫
Doorkeeper with variable token expiration
我在我的应用程序上使用 Doorkeeper,现在我需要将 access_token_expires_in
设置为取决于用户的变量。
此值直接存储在用户模型中,但我找不到任何方法来使用此变量创建令牌。这是我测试的一部分(不是功能性的)
require 'error'
Doorkeeper.configure do
orm :active_record
resource_owner_from_credentials do |routes|
request.params[:user] = {:email => request.params[:username], :password => request.params[:password]}
request.env["devise.allow_params_authentication"] = true
user = User.where(email: params[:username]).first
if user.nil? #|| !user.valid_password?(params[:password])
false
else
access_token_expires_in user.access_token_duration
user
end
end
end
我有这个(完全正常的)错误:
NoMethodError (undefined method `access_token_duration' for #<User:0x007fed1c062898>)
我可以直接用我的自定义值更新 auth_access_token
,但它有点脏。
有人知道另一种方法吗?
这么简单的事情(我没有重启我的服务器)
require 'error'
Doorkeeper.configure do |c|
orm :active_record
resource_owner_from_credentials do |routes|
request.params[:user] = {:email => request.params[:username], :password => request.params[:password]}
request.env["devise.allow_params_authentication"] = true
user = User.where(email: params[:username]).first
if user.nil? #|| !user.valid_password?(params[:password])
false
else
c.access_token_expires_in user.access_token_duration
user
end
end
end
我在我的应用程序上使用 Doorkeeper,现在我需要将 access_token_expires_in
设置为取决于用户的变量。
此值直接存储在用户模型中,但我找不到任何方法来使用此变量创建令牌。这是我测试的一部分(不是功能性的)
require 'error'
Doorkeeper.configure do
orm :active_record
resource_owner_from_credentials do |routes|
request.params[:user] = {:email => request.params[:username], :password => request.params[:password]}
request.env["devise.allow_params_authentication"] = true
user = User.where(email: params[:username]).first
if user.nil? #|| !user.valid_password?(params[:password])
false
else
access_token_expires_in user.access_token_duration
user
end
end
end
我有这个(完全正常的)错误:
NoMethodError (undefined method `access_token_duration' for #<User:0x007fed1c062898>)
我可以直接用我的自定义值更新 auth_access_token
,但它有点脏。
有人知道另一种方法吗?
这么简单的事情(我没有重启我的服务器)
require 'error'
Doorkeeper.configure do |c|
orm :active_record
resource_owner_from_credentials do |routes|
request.params[:user] = {:email => request.params[:username], :password => request.params[:password]}
request.env["devise.allow_params_authentication"] = true
user = User.where(email: params[:username]).first
if user.nil? #|| !user.valid_password?(params[:password])
false
else
c.access_token_expires_in user.access_token_duration
user
end
end
end