Apple Auth не работает на Ruby on Rails Backend

Мне нужно аутентифицировать пользователя с помощью Apple Auth в мобильном приложении. Я получил IdentityToken, User и AuthCode из запроса API из мобильного приложения.

Мне нужно аутентифицировать пользователя и получить его электронную почту. Мой класс AppleId всегда возвращает «invalid_client«.

Может у меня в логике какие-то ошибки?

class AppleId URL = ‘https://appleid.apple.com/auth/token’ ISSUER = ‘https://appleid.apple.com’ TEAM_ID = ‘6Z******38′ KEY_ID = ’33******KP’ IDENTIFIER = ‘ru.k*************on’ PRIVATE_KEY = <<-PEM ——BEGIN PRIVATE KEY—— MIGTA**********z7 ——END PRIVATE KEY—— PEM def initialize @private_key = OpenSSL::PKey::EC.new PRIVATE_KEY end def authenticate(code) make_request(code) end private def make_request(code) uri = URI.parse(URL) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::https::Post.new(uri.request_uri) params = { client_id: IDENTIFIER, client_secret: client_secret_jwt, code: code, grant_type: ‘authorization_code’ } request.set_form_data(params) response = http.request(request) response.body end def client_secret_jwt jwt = JSON::JWT.new( iss: TEAM_ID, aud: ISSUER, sub: IDENTIFIER, iat: Time.now, exp: 1.minutes.from_now ) jwt.kid = KEY_ID JWT.encode jwt, @private_key, ‘ES256’ end end

В моем контроллере:

authCode = params[:auth_code] AppleId.new.authenticate(authCode) => «{«error»:»invalid_client»}»

Это Ruby gem, который делает это, и его README включает ссылку на пример проекта Rails, чтобы проиллюстрировать, как это работает. Я знаю, что это не дает прямого ответа на ваш вопрос, но, возможно, это поможет вам понять, как решить проблему. РЕДАКТИРОВАТЬ: Также есть суть.   —  person Mike Havit    schedule 27.12.2019

Кроме того, хотя он не касается конкретно Rails, этот пост может быть полезен: Войти через Apple (приложение iOS + проверка бэкэнда) API возвращает ошибка «invalid_client»   —  person Mike Havit    schedule 27.12.2019

У меня тоже была аналогичная проблема. Client_id на сервере должен быть ServiceId не AppId   —  person Mike Havit    schedule 02.01.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!