gpt4 book ai didi

single-sign-on - "Sign in with Slack"每次都提示用户权限

转载 作者:行者123 更新时间:2023-12-01 06:00:26 29 4
gpt4 key购买 nike

我正在为我的网站进行 Slack 集成,包括允许用户使用“使用 Slack 登录”按钮登录。理想情况下,我希望它只要求用户授予 identity.*权限一次,然后下次当他们单击“使用 Slack 登录”时,授权屏幕应该只会闪烁然后重定向到下一步(例如 Facebook),但它一直显示授权屏幕,用户必须单击“继续”按钮一次又一次地授予权限。这对我们的用户来说很不方便。有没有办法让它像 Facebook 一样只提示一次?仅供引用,我的应用程序尚未公开分发到 App Directory,这可能是原因吗?

最佳答案

不,它与在公共(public) App 目录中无关。

Slack Sign-in 不会像其他 OAuth 提供商那样缓存用户登录信息,因此如果您想避免每次必须在应用程序中缓存用户权限时用户都必须登录。例如通过使用 cookie。

原则上它是这样工作的:

  • 用户成功登录后,将有关该成功登录的信息存储在该客户端的 cookie 中。
  • 当客户端再次打开您的网页时,请检查该客户端的 cookie 以获取有关成功登录的信息。
  • 当您找到信息时,将属于该客户端的用户显示为已登录(而不是显示 Slack 登录按钮)。
  • 显示登录用户退出的选项(可选)

  • 您存储有关用户的哪些信息取决于您的应用程序需要什么。如果您只想要成功登录的证明,存储 team_iduser_id 就足够了。但是,您还将收到该用户的新 access_token(与您的应用程序的 access_token 不同)作为成功登录的结果。 (有关您从 Slack 收到的完整示例,请参见下文)

    请记住,cookies 存储在客户端本地,用户可以查看。因此,根据您的安全需求,建议不要直接在 cookie 中存储任何与用户相关的信息(尤其不是 access_token )。而是存储一个 ID,该 ID 链接到您的应用程序存储在服务器上的数据。 (这个问题还有其他方法。但这是一个不同的讨论)

    以下是您在成功登录后从 Slack 收到的内容的示例:
    {
    "ok": true,
    "access_token": "XXXX",
    "scope": "identity.basic",
    "user":
    {
    "id": "U12345678",
    "name": "Donald Dummy"
    }
    "team":
    {
    "id": "T12345678"
    }
    }

    关于single-sign-on - "Sign in with Slack"每次都提示用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094760/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com