使用Slake登录(&q;)每次都会提示用户授予权限(&Q) [英] "Sign in with Slack" keeps prompting user for permission every time

查看:13
本文介绍了使用Slake登录(&q;)每次都会提示用户授予权限(&Q)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的网站做Slake集成,包括允许用户使用"Slake登录"按钮登录。理想情况下,我希望它只要求用户授予identity.*权限一次,然后下一次当他们单击"用松弛登录"时,授权屏幕应该只会闪烁,然后重定向到下一步(比如Facebook),但它会一直显示授权屏幕,用户必须一次又一次地单击"继续"按钮才能授予权限。这给我们的用户带来了不便。有没有办法让它像Facebook一样只提示一次?仅供参考我的应用尚未公开分发到应用目录,可能是因为这个原因吗?

推荐答案

否,与是否在公共应用目录中无关。

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

原理如下:

  1. 用户成功登录后,将有关该成功登录的信息存储在该客户端的Cookie中。
  2. 当客户端再次打开您的网页时,请检查该客户端的Cookie以获取有关成功登录的信息。
  3. 当您找到显示属于该客户端的用户已登录的信息时(而不是显示"松弛登录"按钮)。
  4. 显示登录用户注销的选项(可选)

您存储的有关用户的信息取决于您的应用程序需要什么。如果您只需要成功登录的证据,那么存储team_iduser_id就足够了。但由于成功登录,您还将收到该用户的新access_token(与您的应用程序的access_token不同)。(请参见下面的完整示例,了解您从Slake收到的内容)

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

以下是您在成功登录后从Slake收到的信息示例:

{
    "ok": true,
    "access_token": "XXXX",
    "scope": "identity.basic",
    "user": 
    {
        "id": "U12345678",
        "name": "Donald Dummy"
    }
    "team": 
    {
        "id": "T12345678"
    }
}

这篇关于使用Slake登录(&q;)每次都会提示用户授予权限(&Q)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆