Как идентифицировать существующих пользователей после аутентификации через Slack OAuth? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть веб-приложение с существующими пользователями и идентификаторами пользователей (т.е. не идентификаторы пользователей Slack). Я бы хотел, чтобы мои пользователи могли установить мое новое приложение Slack.

Как узнать, кто из моих пользователей подключается к Slack с помощью OAuth и устанавливает мое приложение? Я знаю, что вы можете запросить электронную почту, но что делать, если электронная почта Slack отличается от адреса электронной почты, который использовался для первоначальной регистрации в моем приложении.

Очень важно, чтобы я знал, какие пользователи Slack связаны с моими существующими пользователями. Есть ли способ отправить user_id моих существующих пользователей через процесс OAuth, чтобы я знал, как связать пользователя Slack с одним из моих пользователей?

Потенциальные решения?

  • Пользовательские cookie-файлы позволят мне идентифицировать их по Slack OAuth перенаправления.
  • Используйте переменную state как способ идентифицировать пользователя на моем сайт

1 Ответ

0 голосов
/ 02 июля 2018

Я бы не использовал свойство state для передачи информации о пользователе. Это теоретически возможно, но не подойдет для цели государственного имущества в качестве меры безопасности.

Вместо этого вам просто нужно сохранить пользовательский контекст на вашем веб-сайте во время процесса Oauth (например, путем сохранения идентификатора пользователя в сеансе сервера), чтобы позже вы могли сохранить соединение между вашим пользовательским идентификатором пользователя и идентификатором пользователя Slack.

Вот полный процесс:

  1. Вы, пользователи, должны сначала войти на свой сайт, чтобы идентифицировать сами по себе.
  2. Ваш веб-сайт будет иметь идентификатор пользователя и должен сохранять этот контекст, например в сеансе сервера.
  3. Затем ваш пользователь может установить приложение Slack. После установка завершена, процесс Oauth будет автоматически перенаправить пользователя обратно на ваш сайт.
  4. Вы можете получить текущий идентификатор пользователя, позвонив по номеру auth.test с только что полученным токеном доступа.
  5. Наконец, есть пользовательский идентификатор и идентификатор пользователя Slack, который можно хранить это соединение, например в вашей базе данных для дальнейшего использования. В качестве альтернативы вы можете добавить эту информацию пользователю Slack как Пользовательское свойство с users.profile.set
...