Mendeley Custom OAuth Стратегия
У Mendeley есть отличный API (на самом деле они организовали конкурс, используя свой API, хотя этот вопрос не является специфическим для этого), который использует OAuth.
Я пытаюсь написать стратегию, чтобы разрешить аутентификацию Mendeley, и у меня довольно много проблем с этим..
Я захожу в /auth/mendeley, он перенаправляет меня на Mendeley.com, я аутентифицирую, затем перенаправляет меня на страницу, на которой ничего нет, кроме этой
{"error":"Ключ пользователя не найден"}
Они упоминают, что это OAuth с тремя ногами, это то, что требует дополнительного шага, чем обычно делает OAuth?
Вот что у меня есть:
# /config/initializers/omniauth.rb
module OmniAuth
module Strategies
# tell omniauth to load the strategy
autoload :Mendeley, 'lib/mendeley'
end
end
# gather oauth credentials from the yml file
OAUTH = YAML.load_file(File.join(Rails.root, "config", "oauth.yml"))
# load all the possible oauth strategies
ActionController::Dispatcher.middleware.use OmniAuth::Builder do
provider OmniAuth::Strategies::Mendeley, OAUTH['mendeley']['consumer_key'], OAUTH['mendeley']['consumer_secret']
end
# lib/mendeley.rb
require 'omniauth/oauth'
require 'multi_json'
module OmniAuth
module Strategies
# Omniauth strategy for using oauth2 and mendeley.com
class Mendeley < OAuth2
def initialize(app, consumer_key = nil, consumer_secret = nil, &block)
client_options = {
:site => 'http://api.mendeley.com'
}
super(app, :mendeley, consumer_key, consumer_secret, client_options, &block)
end
end
end
end
3 ответа
Сделал сам - потянул запрос: https://github.com/intridea/omniauth/pull/587/files
Я знаю, что вы спрашивали об этом давным-давно, но мне нужен сам плагин OmniAuth для Mendeley. В результате я написал драгоценный камень, который должен помочь людям в будущем. Он работает очень похоже на другие стратегии OmniAuth.
Глядя на эту страницу, похоже, что они поддерживают OAuth 1, но в вашем коде вы подкласс OAuth2
,
Вы уверены, что они поддерживают это?