Как сохранить в живых коробочный токен? - PullRequest
0 голосов
/ 10 мая 2019

У меня запущено приложение rails на heroku, откуда мне нужно создать Box.com !папка при обратном вызове создания элемента с использованием gem для API содержимого Box !

Стандартный OAuth 2.0 (аутентификация пользователя) box api, предоставляющий токен, который длится час.Мне нужно, чтобы токен был активен на все времена, чтобы приложение могло в любое время создавать папку box из приложения.

Недавно также была реализована функция box webhook.

Я попробовал несколько способов нижено ничего не помогло:

  1. Обратный вызов обновления токена, как предложено для boxr gem !
    token_refresh_callback = lambda {|access, refresh, identifier|
      Setting.box_access_token     = access
      Setting.box_refresh_token    = refresh
    }

    @client = Boxr::Client.new(
        Setting.box_access_token,
        refresh_token: Setting.box_refresh_token,
        client_id:     Setting.box_client_id,
        client_secret: Setting.box_client_secret, &token_refresh_callback
    )
Вызывается метод перед инициализацией для обновления токена
unless (Time.now.to_i >= Setting.box_token_expires_in.to_i - 300)
      token                        = Boxr::refresh_tokens(Setting.box_refresh_token, client_id: Setting.box_client_id, client_secret: Setting.box_client_secret)
      Setting.box_access_token     = token.access_token
      Setting.box_refresh_token    = token.refresh_token
      Setting.box_token_expires_in = Time.now.to_i + token.expires_in.to_i
    end
Использовал планировщик, который в основном вызывает метод для выполнения того, что делал на предыдущем шаге.

Шаг 2 работал раньше, но иногда получал исключение истечения срока действия маркера обновления.вдруг не работает, требуется вручную сбрасывать токен через каждый час.Не уверен, но это может начаться после реализации функции box webhook.

Был бы рад получить предложение / решение для поддержания токена в живых ...

...