我正在构建一个网站,并添加了“使用 Slack 登录”按钮。
我正在使用 omniauth-slack(最新的 8b2371),它运行良好。
但我只想允许来自我自己的 Slack 团队的用户。

team 参数,但行为不太好( https://api.slack.com/docs/oauth )。
只有当用户登录到团队时,它才会自动选择团队。
否则,用户必须手动键入他们的团队域。
如果用户登录到另一个团队,情况会变得更糟;尽管指定了我的团队 ID,但它尝试与其他团队登录(甚至,无法更改/选择要登录的团队域,只有授权按钮)。

我可以通过在回调操作中检查他们的团队 id 来禁止来自其他团队的用户,但我不想在我的团队成员使用 Slack 登录我的网站时混淆他们。

有没有人有同样的问题?

最佳答案

在授权 URL 中使用工作区的子域而不是 Slack 默认值。在 python-social-auth 文档中,这就像定义一个新的后端一样简单,例如:

class MyTeamSlackOAuth2(SlackOAuth2):
    AUTHORIZATION_URL = 'https://myteamhere.slack.com/oauth/authorize'

并使用它而不是股票。我不知道 omniauth 中的并行操作是什么,但我会将其作为练习留给读者。 :)

关于omniauth - 如何指定团队以使用 Slack 登录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38066406/

10-15 19:07