Правильная реализация OAuth для моего варианта использования - PullRequest
0 голосов
/ 21 марта 2020

Справочная информация:
У меня есть веб-приложение (с python - flask backend) и внешний интерфейс wix. Пользователь входит в мое приложение (уже реализовано). Теперь мой сайт в основном действует как агрегатор данных и показывает пользователю некоторые визуализации. Но одним источником, из которого я планирую получить данные (укажите c для моего пользователя), является Yahoo, который требует, чтобы мое приложение было сначала авторизовано пользователем (через OAuth2.0). Итак, я просмотрел их Документацию здесь: https://developer.yahoo.com/oauth2/guide/flows_authcode/#refresh -token-label , и вот что я получил и хотел бы получить ваш совет, если его правильно или что-то нужно изменить:

  1. Я зарегистрировал свое приложение в сети Yahoo Deveoper.
  2. Пользователь Заходит в мое приложение. Я Genearte auth_token (далее - my-token), поэтому сервер python - flask может отображать будущие запросы с этим конкретным c пользователем.
  3. На веб-странице есть опция, где он говорит взять данные от Yahoo. Поскольку это первый раз, процесс OAuth запускается.
  4. Я вызываю API "/ request_auth" yahoo из самого внешнего интерфейса (wix). Я могу жестко закодировать client_id в файлах js. (Насколько я понимаю, это нормально, если client_id открыт и его не нужно хранить в тайне)
  5. Теперь пользователь перенаправляется на страницу входа в Yahoo, и он дает разрешение. URI перенаправления, который я предоставил, выглядит так: «https://mywixsite/somepage»
  6. Теперь Yahoo перенаправляет на мой URI перенаправления с добавленным в конце кодом, например: «https://mywixsite/somepage/yahoo-code ".
  7. Теперь я вызываю конечную точку на моем python - flask сервере, передавая код и токен my.
  8. Моя python конечная точка обменивается кодом Yahoo с refresh_token и access_token путем вызова API "/ get_token" Yahoo. Я идентифицирую пользователя, используя my-token, и сохраняю эти токены (access_token, refresh_token) для этого пользователя в базе данных.
  9. Теперь поток OAuth завершен, и я могу отправлять дополнительные запросы yahoo, используя этот access_token, чтобы получить пользовательские данные.

Безопасна ли эта реализация или мне нужно внести в нее некоторые изменения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...