我正在为我的网站进行Slack集成,包括允许用户使用"使用Slack登录"按钮。理想情况下,我希望它只要求用户授予identity.*
权限一次,然后下次点击"使用Slack"登录时,授权屏幕应该只闪烁然后重定向到下一步(例如,与Facebook一样),但它一直显示授权屏幕,用户必须点击"继续"按钮一次又一次地授予权限。这对我们的用户来说很不方便。有没有办法让它像Facebook一样只提示一次?仅供参考我的应用程序尚未公开发布到App Directory,可能是原因吗?
答案 0 :(得分:0)
不,它与公共App目录无关。
Slack登录不像其他OAuth提供商那样缓存用户登录,因此如果您想避免用户每次必须在应用中缓存用户权限时都必须登录。例如使用cookies。
原则上它是如何运作的:
您存储的有关用户的信息取决于您的应用程序需求。如果您只想要成功登录的证明,那么存储team_id
和user_id
就足够了。但是,如果成功登录,您还会收到该用户的新access_token
(与您应用的access_token
不同)。 (有关从Slack收到的内容的完整示例,请参阅下文)
请注意,Cookie会在本地存储在客户端上,并且可以向用户查看。因此,根据您的安全需求,建议不要直接在cookie中存储任何与用户相关的信息(尤其不是access_token
)。而是存储一个ID,该ID链接到您的应用程序存储在服务器上的数据。 (还有其他解决这个问题的方法。但这是一个不同的讨论)
以下是成功登录后从Slack收到的内容的示例:
{
"ok": true,
"access_token": "XXXX",
"scope": "identity.basic",
"user":
{
"id": "U12345678",
"name": "Donald Dummy"
}
"team":
{
"id": "T12345678"
}
}