我正在建立一个网站,我添加了“使用Slack登录”按钮。 我正在使用omniauth-slack(最新的8b2371)并且效果很好。 但我想只允许我自己的Slack团队的用户。
有team
参数,但行为不太好(https://api.slack.com/docs/oauth)。
仅当用户登录团队时,它才会自动选择团队。
否则,用户必须手动键入其团队域。
如果用户登录到另一个团队,情况会变得更糟;尽管指定了我的团队ID,但它尝试与其他团队一起登录(即使,无法更改/选择团队域以登录,也只有“授权”按钮)。
我可以通过在回调操作中检查他们的团队ID来禁止其他团队的用户,但我不想在我的团队成员用Slack登录我的网站时混淆。
有没有人遇到同样的问题?
答案 0 :(得分:0)
在授权URL中使用工作区的子域而不是Slack默认值。在python-social-auth docs中,这就像定义一个新的后端一样简单,例如:
class MyTeamSlackOAuth2(SlackOAuth2):
AUTHORIZATION_URL = 'https://myteamhere.slack.com/oauth/authorize'
并使用它代替库存的一个。我不知道omniauth中的并行操作是什么,但我会将其留给读者练习。 :)