我正在尝试使用门卫宝石来保护我的API。
我的代码如下所示:
Doorkeeper.configure do
resource_owner_authenticator do
current_user || warden.authenticate!(:scope => :user)
end
default_scopes :public # if no scope was requested, this will be the default
optional_scopes :admin, :write
enable_application_owner :confirmation => false
end
以下是我用来连接API的命令:
RestClient.post 'http://localhost:3000/oauth/token', {
grant_type: 'client_credentials',
client_id: '26b8e5c92367d703ad35a2fc16b14dc93327a15798068ccba473aa2e3d897883',
client_secret: 'b16079915cdc20b5373f1601e31cece5a84274f772cfd89aec12c90fd110775e'
}
......和......
RestClient.get 'http://localhost:3000/api/v1/videos', { 'Authorization' => 'Bearer <token_from_previous_request>' }
哪个工作正常,但我的问题是,返回的Token对象有一个空的resource_owner_id
参数(在创建令牌时,这个列没有在DB中填充)。你知道我做错了什么吗?我一直在关注这些教程:
答案 0 :(得分:2)
客户端凭据流“未与资源所有者关联”(https://github.com/applicake/doorkeeper/wiki/Client-Credentials-flow),因此我认为未设置resource_owner_id是正确的。