【发布时间】:2020-02-17 02:41:17
【问题描述】:
我正在开发一个 Slack 应用程序,用户可以使用 Slack 的 Oauth 流程将其安装到工作区。安装和配置应用程序后,我使用 Oauth 允许用户登录并更改应用程序配置。
新用户的流程使用“添加到 Slack”按钮,该按钮要求用户同意允许 bot 和 identity.* 范围,之后我的应用会检索并存储机器人和用户令牌。
现在我想允许同一用户使用“使用 Slack 登录”Oauth 流程登录。根据the Slack documentation,“使用 Slack 登录”流程只允许使用相同的 /oauth/authorize 端点,但只请求 identity.* 范围之一(我正在使用 identity.basic):
<a href="https://slack.com/oauth/authorize?scope=identity.basic&client_id=REDACTED">Sign in with Slack</a>
用户已经在初始应用安装时授权我的应用使用 bot 和 identity.* 范围,但令人惊讶的是,他/她被重新提示确认允许我的应用在每个“使用 Slack 登录”上使用 identity.* 范围"行动。
slack 文档暗示后续登录尝试将导致自动重定向:
用户单击您的“使用 Slack 登录”按钮后,他们的网络浏览器应该会到达 Slack 的服务器。
当用户处理一些业务时,您的应用程序会耐心等待,或者 Slack 只是将它们发送回您的重定向 URL。
(强调我的)
但是,Slack总是要求用户(重新)授权我的应用程序使用 identity.* 范围。如何通过一键式流程让用户使用 Slack 登录?
更新:来自 Slack 的回应
我联系了 Slack 团队并得到了以下回复:
不幸的是,我们似乎需要更新文档,因为目前描述的内容并不准确。特别是:
回访用户不会因不必要的批准而分心,我们会尽快将他们送回您的网站、服务或应用!
由于我们对身份验证流程进行了更改,现在我们允许用户选择他们正在使用的工作区进行身份验证,我们再次向他们展示“范围”或“权限”页面。 这绝对是我们应该考虑改进的事情,但目前这是预期的行为,我们将修改文档以实现这一点。
很抱歉带来坏消息。
截至 2019 年 11 月 17 日,Sign in with Slack documentation 尚未更新。
【问题讨论】: