我正在开发一个Slack应用程序,该应用程序也链接到一个Web应用程序,用户可以使用Slack登录。新用户需要登录Web应用并将应用添加到Slack ,这是非常常见的。
我想通过OAuth一次性让他们这样做。由于Web应用程序需要每个用户的姓名,电子邮件地址和个人资料图片,因此我将" identity.basic"," identity.email"等范围添加到请求的范围内通过"添加到Slack"按钮。但事实证明,Slack并不允许这样做。 Slack OAuth页面显示" 请求的权限无效:无法同时请求身份范围和其他范围"。
一种替代方案可能是请求用户:read和users:read.email范围而不是身份范围。但是,这为我们的应用提供了超出其需求的访问权它只需要当前用户的信息,而不是团队中的所有用户。 (它可能稍后需要所有用户的信息,所以我还是考虑这样做,但我不确定用户是否会喜欢它。)
另一种选择似乎是让用户通过两个不同的OAuth权限屏幕。但这似乎很麻烦,而且用户体验也不好。
所以问题是(1)是否有更好的方法,以及(2)为什么Slack不允许将身份范围与其他范围相结合?
更新澄清,以回应@ erik-kalkoken的回答:
我意识到"添加到Slack"之间的区别。并且"使用Slack"登录。我当然不打算为大多数用户带走一个简单的选项"使用Slack"登录。然而,对于这个特定的应用程序,做"添加到Slack"是没有意义的。没有登录到网络应用程序。这需要由每个Slack团队的一个人完成,然后该团队的其他用户才能使用它。我们对新团队的入职流程有点麻烦,我正在寻找使其更简单,更顺畅的方法。由于登录和添加步骤理论上可以合并为一个步骤,我宁愿这样做。
部分原因可能是因为我们还没有开发一个" Slack app&#34 ;;我们正在为Web应用程序开发Slack集成。可以在不使用Slack的情况下使用Web应用程序,并且具有自己的用户和社区概念。
答案 0 :(得分:4)
更好的方式"在我看来,不会在你的网站上结合这两个功能,因为它们的效果是非常不同的。我认为,如果将用户合并在一起并且无法提供良好的用户体验,那将会让用户感到困惑。
"加入Slack"正在为整个Slack团队安装一个Slack应用程序。你只做一次,通常由Slack团队的管理员完成。
"使用Slack"用于验证Slack团队的任何用户。每次登录应用程序时都会使用此功能,并且Slack团队的许多用户都会使用此功能。