Указание заголовка авторизации Носитель с токеном при извлечении пользователя?Для Telegram Telepass - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь построить Omniauth на основе интеграции Telegram с OAuth 2. Telegram.

Мой код в настоящее время выглядит так:

require 'omniauth-oauth2'

module Omniauth
  module Strategies
    class Telepass < OmniAuth::Strategies::OAuth2
      option :client_options, {
          :site => 'https://telepass.me/api/user',
          :authorize_url => 'https://telepass.me/oauth/authorize',
          :token_url => 'https://telepass.me/oauth/token'
      }

      def request_phase
        redirect client.auth_code.authorize_url({:redirect_uri => callback_url}.merge(authorize_params))
      end

      def authorize_params
        super.tap do |params|
          %w[scope client_options].each do |v|
            if request.params[v]
              params[v.to_sym] = request.params[v]
            end
          end
        end
      end

      uid { raw_info['id'].to_s }

      info do
        {
            'first_name' => raw_info['first_name'],
            'last_name' => raw_info['last_name'],
            'username' => raw_info['username'],
            'avatar' => raw_info['avatar'],
        }
      end

      extra do
        {:raw_info => raw_info}
      end

      def raw_info
        access_token.options[:mode] = :query
        @raw_info ||= access_token.get('user').parsed
      end

      def callback_url
        full_host + script_name + callback_path
      end
    end
  end
end

OmniAuth.config.add_camelization 'telepass', 'Telepass'

Однако выдается «Недействительные учетные данные» Ошибка.

У меня есть два файла для справок. Один был реализован в паспорте Node.js, а другой - в Laravel.

Образец интеграции Laravel

Passport.js Пример интеграции

Я пытаюсь сделать то же самое с Омниавтом. Но, как вы видите, я не могу сделать дополнительный запрос GET с помощью Authorization : Bearer : Token.

Не могли бы вы помочь мне обойти это? Было бы неплохо иметь драгоценность OmniAuth от Telegram.

...