通过 Slack OAuth 验证后如何识别现有用户?
How to identify existing users after authenticating via Slack OAuth?
我有一个包含现有用户和用户 ID(即不是 Slack 用户 ID)的 Web 应用程序。我想让我的用户安装我的新 Slack 应用程序。
我如何知道我的哪些用户使用 OAuth 连接到 Slack 并安装了我的应用程序?我知道您可以请求电子邮件,但如果 Slack 电子邮件与最初用于注册我的应用程序的电子邮件地址不同怎么办。
了解哪些 Slack 用户 link 我的现有用户是至关重要的。有没有办法通过 OAuth 流程发送我现有用户的 user_id,这样我就知道如何 link 一个 Slack 用户给我的一个用户?
可能的解决方案?
- 用户的 cookie 将允许我在 Slack OAuth 上识别他们
重定向。
- 使用
state
变量来识别我的用户
网站
我不会使用state
属性来传输用户信息。这在理论上是可能的,但会违背国家 属性 作为安全措施的目的。
相反,您只需要在 Oauth 过程中将用户上下文保留在您的网站上(例如,通过将用户 ID 存储在服务器会话中),这样您就可以存储自定义用户 ID 和 Slack 用户 ID 之间的连接稍后。
完整过程如下:
- 您的用户首先需要登录您的网站以识别
他们自己。
- 您的网站将拥有用户的用户 ID,需要保留
这种情况,例如在服务器会话中。
- 接下来,您的用户可以选择安装您的 Slack 应用程序。之后
安装完成后Oauth进程会自动
将您的用户重定向回您的网站。
- 然后您可以通过调用
auth.test
获取当前用户 ID
使用您刚刚收到的访问令牌。
- 终于有了可以存储的自定义用户 ID 和 Slack 用户 ID
这种联系,例如在您的数据库中以供将来参考。
或者,您可以将此信息添加到 Slack 用户,如下所示
自定义 属性 与
users.profile.set
我有一个包含现有用户和用户 ID(即不是 Slack 用户 ID)的 Web 应用程序。我想让我的用户安装我的新 Slack 应用程序。
我如何知道我的哪些用户使用 OAuth 连接到 Slack 并安装了我的应用程序?我知道您可以请求电子邮件,但如果 Slack 电子邮件与最初用于注册我的应用程序的电子邮件地址不同怎么办。
了解哪些 Slack 用户 link 我的现有用户是至关重要的。有没有办法通过 OAuth 流程发送我现有用户的 user_id,这样我就知道如何 link 一个 Slack 用户给我的一个用户?
可能的解决方案?
- 用户的 cookie 将允许我在 Slack OAuth 上识别他们 重定向。
- 使用
state
变量来识别我的用户 网站
我不会使用state
属性来传输用户信息。这在理论上是可能的,但会违背国家 属性 作为安全措施的目的。
相反,您只需要在 Oauth 过程中将用户上下文保留在您的网站上(例如,通过将用户 ID 存储在服务器会话中),这样您就可以存储自定义用户 ID 和 Slack 用户 ID 之间的连接稍后。
完整过程如下:
- 您的用户首先需要登录您的网站以识别 他们自己。
- 您的网站将拥有用户的用户 ID,需要保留 这种情况,例如在服务器会话中。
- 接下来,您的用户可以选择安装您的 Slack 应用程序。之后 安装完成后Oauth进程会自动 将您的用户重定向回您的网站。
- 然后您可以通过调用
auth.test
获取当前用户 ID 使用您刚刚收到的访问令牌。 - 终于有了可以存储的自定义用户 ID 和 Slack 用户 ID
这种联系,例如在您的数据库中以供将来参考。
或者,您可以将此信息添加到 Slack 用户,如下所示
自定义 属性 与
users.profile.set