Я пытаюсь построить 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.