【问题标题】:How to identify existing users after authenticating via Slack OAuth?通过 Slack OAuth 进行身份验证后如何识别现有用户?
【发布时间】:2018-12-10 04:20:42
【问题描述】:

我有一个包含现有用户和用户 ID(即不是 Slack 用户 ID)的 Web 应用程序。我想允许我的用户安装我的新 Slack 应用程序。

我如何知道我的哪些用户使用 OAuth 连接到 Slack 并安装了我的应用程序?我知道您可以请求电子邮件,但如果 Slack 电子邮件与最初用于注册我的应用程序的电子邮件地址不同怎么办。

了解哪些 Slack 用户与我的现有用户相关联至关重要。有没有办法通过 OAuth 流程发送我现有用户的 user_id,以便我知道如何将 Slack 用户链接到我的一个用户?

可能的解决方案?

  • 用户的 cookie 将允许我在 Slack OAuth 上识别他们 重定向。
  • 使用state 变量来识别我的用户 网站

【问题讨论】:

  • 您将两个 OAuth 流程/按钮(Sign in with SlackAdd to Slack)中的哪一个用于应用集成?
  • 我正在使用 Add to Slack。由于我的应用程序必须针对每个工作区表现不同。我需要有一些东西可以将其锚定到我现有的用户。

标签: oauth-2.0 slack slack-api


【解决方案1】:

我不会使用state 属性来传输用户信息。这在理论上是可能的,但会违背国有财产作为安全措施的目的。

相反,您只需在 Oauth 过程中将用户上下文保存在您的网站上(例如,通过将用户 ID 存储在服务器会话中),以便稍后存储自定义用户 ID 和 Slack 用户 ID 之间的连接。

这是完整的过程:

  1. 您的用户首先需要登录您的网站以识别 自己。
  2. 然后您的网站将拥有用户的用户 ID,需要保留 这种情况,例如在服务器会话中。
  3. 接下来,您的用户可以选择安装您的 Slack 应用程序。之后 安装完成Oauth过程会自动 将您的用户重定向回您的网站。
  4. 然后您可以通过调用auth.test 获取当前用户ID 使用您刚刚收到的访问令牌。
  5. 终于有了自定义用户 ID 和 Slack 用户 ID 都可以存储 这种联系,例如在您的数据库中以供将来参考。 或者,您可以将此信息添加到 Slack 用户作为 带有users.profile.set 的自定义属性

【讨论】:

  • 这有帮助。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 2016-08-02
  • 2019-09-18
相关资源
最近更新 更多