Mendeley Custom OAuth Стратегия - PullRequest
3 голосов
/ 12 мая 2011

Менделей имеет отличный API (на самом деле они создали конкурс, используя свой API, хотя этот вопрос не является специфическим для этого), который использует OAuth.

Я пытаюсь написать стратегию, разрешающую Mendeley Authentication, и у меня немало проблем с этим ..

Я захожу в / 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 ]

1 голос
/ 14 марта 2012

Я знаю, что вы спрашивали об этом давным-давно, но мне нужен сам плагин OmniAuth для Mendeley. В результате я написал драгоценный камень, который должен помочь людям в будущем. Он работает очень похоже на другие стратегии OmniAuth.

https://github.com/fractaloop/omniauth-mendeley

0 голосов
/ 15 марта 2012

Сделал сам - запрос на извлечение: https://github.com/intridea/omniauth/pull/587/files#diff-13

0 голосов
/ 02 августа 2011

Глядя на эту страницу , похоже, что они поддерживают OAuth 1, но в вашем коде вы подкласс OAuth2.

Вы уверены, что они поддерживают его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...