Flutter spotify sdk — обновить токен доступа

#flutter #spotify

Вопрос:

Я использую следующий пакет: https://pub.dev/packages/spotify_sdk

Этот пакет предоставляет метод getAuthenticationToken , который возвращает токен доступа к spotify для использования с моим сервером для извлечения некоторых данных spotify, связанных с пользователем:

 authenticationToken = await SpotifySdk.getAuthenticationToken(
  clientId: dotenv.get('SPOTIFY_CLIENT_ID'),
  redirectUrl: dotenv.get('SPOTIFY_AUTH_REDIRECT_URL'),
  scope: 'user-read-email, user-top-read',
);
 

Однако срок действия этого токена истекает через 1 час. Есть ли какой-либо способ обновить этот токен без внешнего интерфейса (только на стороне сервера)? Какие у меня варианты?

Ответ №1:

tl; dr

Нет прямого способа получить токен обновления через пакет. Но есть и другие способы обойти это ограничение. См. раздел Обход

Доступность функции

Обычно API аутентификации Spotify включает токен обновления, но эта функция отсутствует в Android sdk (см.: пакет flutter: # 75 Android sdk: # 12 # 220 # 225), хотя она поддерживается ios, а также web sdk.

Если приложение будет использоваться только с ios или из Интернета, разработчики пакета flutter, скорее всего, примут pr, который предоставляет методы обновления поддерживаемых платформ, даже если это принесет мало пользы.

Функция вклада

Если вы знакомы с разработкой Android и эта функция важна для вас, вы можете попробовать самостоятельно интегрировать эту функцию в Android sdk, а затем предоставить ее в flutter sdk.

Здесь это уже было сделано в fork:

Производитель уже открыл запрос на извлечение, но пока не получил ответов (откроется в конце 2018 года).

Обход

Способ обойти это — сохранить имя пользователя и пароль пользователя на устройстве (или на сервере), хотя это было бы плохо с точки зрения безопасности.


Другим источником вдохновения может быть этот комментарий от пользователя android-sdk, который маршрутизировал аутентификацию через свой сервер.