门卫密码授予URI :: InvalidURIError:查询与opaque冲突

est*_*ban 6 ruby-on-rails devise doorkeeper

Rails,设计和门卫......试图测试密码授予和获取错误:URI::InvalidURIError: query conflicts with opaque任何想法?

更新:我创建了第二个能够获得令牌的rails应用程序..所以也许是关于native_redirect_uri的东西

Doorkeeper.configure do
  orm :active_record

  resource_owner_authenticator do
      # current_user || warden.authenticate!(:scope => :user)
  end

  resource_owner_from_credentials do |routes|
    user = User.find_for_database_authentication(email: params[:username])
    user if user && user.valid_password?(params[:password])
  end


  reuse_access_token

  use_refresh_token

  native_redirect_uri 'urn:ietf:wg:oauth:2.0:oob'

  grant_flows %w(password)


  skip_authorization do |resource_owner, client|
    true
  end

end
Run Code Online (Sandbox Code Playgroud)

使用oauth2我创建一个应用程序,给它一个随机名称和网站uri: urn:ietf:wg:oauth:2.0:oob

然后使用用户的凭据运行以下命令:

client = OAuth2::Client.new('caa5ia541111698b34e66056e18b9afd6cb90c0d200d5dac99584da5a6b83b411', 'e45c78992a9eeb609b72cf5b56aea8dd999ec7dc9594a4211b8265f525a75870', :site => "urn:ietf:wg:oauth:2.0:oob")
access_token = client.password.get_token('test@test.com', 'realpassword')
Run Code Online (Sandbox Code Playgroud)

我在这里粗略地遵循这个例子

Nea*_*JMD 19

我自己遇到了这个错误并且非常困惑,因为它是关于URI库内部的一个非常神秘的错误.我的问题是我加入的第一个字符串没有指定协议(https://http://).添加一个解决了我的问题!


est*_*ban 0

对于任何人来说,我认为我滥用了“urn:ietf:wg:oauth:2.0:oob”。我作为客户端设置了一个单独的 Rails 应用程序,一切都按预期工作。