- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一款 Slack 应用程序,用户可以使用 Slack 的 Oauth 流程将其安装到工作区。安装和配置应用程序后,我使用 Oauth 允许用户登录并对应用程序配置进行更改。
新用户的流程使用“添加到 Slack”按钮,该按钮要求用户同意允许 bot
和 identity.*
范围,之后我的应用会检索并存储机器人和用户 token 。
现在我想允许同一用户使用“使用 Slack 登录”Oauth 流程登录。每the Slack documentation ,“使用 Slack 登录”流程只允许使用相同的 /oauth/authorize
端点,但只请求一个 identity.*
范围(我正在使用identity.basic
):
<a href="https://slack.com/oauth/authorize?scope=identity.basic&client_id=REDACTED">Sign in with Slack</a>
用户已经在初始应用安装时授权我的应用使用 bot
和 identity.*
范围,但令人惊讶的是,他/她再次被提示确认允许我的app identity.*
每个“使用 Slack 登录”操作的范围。
slack 文档暗示后续登录尝试将导致自动重定向:
After a user clicks your Sign in with Slack button, their web browser should arrive on Slack's servers.
Your application will wait patiently while the user handles some business or Slack just sends them on their way back to your redirect URL.
(强调我的)
但是,Slack 总是 请求用户(重新)授权我的应用程序使用 identity.*
范围。如何通过一键式流程让用户登录使用 Slack?
我联系了 Slack 团队并得到了这样的回复:
Unfortunately it looks like we'll need to update the documentation as for the moment what's described there is not accurate. Particularly:
Returning users won’t be distracted by unnecessary approvals, we’ll send them back to your site, service, or app as fast as we can!
由于我们对身份验证流程进行了更改,现在我们允许用户选择他们正在使用的工作区,因此我们再次向他们展示“范围”或“权限”页面。 这绝对是我们应该考虑改进的地方,但目前这是预期的行为,我们将修改文档以反射(reflect)这一点。
对于这个坏消息,我们深表歉意。
截至 2019 年 11 月 17 日 Sign in with Slack documentation还没有更新。
最佳答案
如果您需要使用经过身份验证的 Slack 用户实现链接到您的 Slack 应用程序的网页,您有两种选择:
一种方法是使用 Slack 登录来验证您网页的用户。这使您可以清楚地对用户进行身份验证。但是,缺点是用户每次再次打开此网页时都必须重复登录过程。通过使用 cookie 让用户在浏览器重新启动之间保持登录状态,直到他们手动退出 Web 应用程序,可以在一定程度上缓解这种情况。
请注意,此身份验证过程独立于登录到其 Slack 工作区的用户。
或者,您可以让用户直接从 Slack 打开您的网络应用程序,例如通过单击您提供的链接按钮。此 URL 需要包含允许您的网络应用程序获取用户当前上下文的信息,例如他的 Slack 和用户 ID。
请注意,此 URL 可以获得并可能被用户滥用,因此您需要添加措施来保护它,例如通过加密 ID 或通过添加安全散列或一次性 token ...
关于oauth-2.0 - 松弛 Oauth : Automatically authorize user if user had already authorized app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58478994/
我有一个盒子,上面有一个溢出卷轴。当你到达盒子的尽头时;我想触发一个事件(滚动到页面的下一部分)。 下面的代码有效,但是,我希望其中有一些“松弛”。因此它不需要在您到达框的末尾时直接触发,而仅在您坚持
有时当我尝试打开一个松弛模式时,它会在生产中给出一个 expired_trigger_id 错误。我如何调试并找出它发生的原因?我在 js 中使用 slack bolt 来创建聊天机器人。 最佳答案
我的问题很简单,我认为创建这个程序只需要几个小时。但是现在我整天都在研究它,试图弄清楚我可能做错了什么。 我想做的就是使用他们的 postMessage api 将消息发布到 slack .我已经能够
A 有一个脚本可以完美地将消息发送到松弛 channel 。该脚本放置在具有以下 curl 版本的测试服务器上: curl --version curl 7.15.5 (x86_64-redhat-l
我使用 node.js 构建我的 Slack 机器人。我使用了@slack/client。它工作正常。现在我有一个通过 slack message builder 获得的 JSON 格式的数据。像这样
看起来没有选项可以将包含表格的消息发布到 slack。我正在尝试使用文本格式构建表格。在下面的示例中,文本未对齐,因为第一行包含文本 ROW1,第二行包含文本 ROW。有没有办法在 ROW 之后添加空
我正在使用 slack_nagios.pl 脚本。 Ubuntu 14.05 和 Nagios 4.4.5 https://raw.githubusercontent.com/tinyspeck/se
我想检索在我的团队松弛域中发送的所有消息。虽然我更喜欢以 XML 或 JSON 形式接收数据,但我能够以任何形式处理数据。 如何检索所有这些消息?是否可以?如果没有,我可以检索特定 channel 的
在使用 CPLEX C API 进行 MIP 优化期间,是否可以检索当前节点(即每 n 个节点)的线性松弛(双变量、降低的成本等)? 我注册了一个回调函数 (CPXsetsolvecallbackfu
我正在使用 Python 和它的 Slacker API 将消息发布到松弛 channel ,并且它发布消息的效果很好。 现在我想做的是创建一个按钮,上面写着更多信息,当它被点击时,我想显示一个项目列
我目前正在尝试使用 SlackConnector 库在 C# 中开发应用程序。 SlackConnector 应用程序将接收消息并将消息发送到松弛 channel 和 DM。 (我能够使用测试 tok
给定一个松弛 channel 的名称,有没有办法检索该 channel 中所有成员的电子邮件列表?我尝试查看 slack api 文档,但找不到实现此目的所需的方法 (https://api.slac
我已经构建了一个 receives events 的应用程序. 默认情况下,范围 channels:history让它接收添加应用程序的用户的所有公共(public) channel 中的所有消息的事
我正在使用模态来收集数据。我通过以下代码打开了一个 View : view = { "type": "modal", "title": { "type": "plain
我正在使用模态来收集数据。我通过以下代码打开了一个 View : view = { "type": "modal", "title": { "type": "plain
我的问题有点复杂。它是这样的:我通过 HTTPClient 从(在我的例子中)“Slack”-API 获得答案。此数据作为 JSON 发送,因此我将其反序列化为我为此编写的合适对象(类)。到目前为止,
我正在尝试使用他们的 Web API 将 Slack 与我们的应用程序集成。我需要使用 chat.postMessage具有自定义用户名并设置 as_user = false 的端点。我可以发布消息,
我正在开发一款 Slack 应用程序,用户可以使用 Slack 的 Oauth 流程将其安装到工作区。安装和配置应用程序后,我使用 Oauth 允许用户登录并对应用程序配置进行更改。 新用户的流程使用
如何使用事件 API 检测消息是否来自在私有(private) channel (只有机器人的 DM)中与我的机器人聊天的用户? 最佳答案 检查 channel ID 中的第一个字母。如果它以 D 开
我是一名优秀的程序员,十分优秀!