小编ald*_*del的帖子

同时"添加到Slack"和"使用Slack登录"

我正在开发一个Slack应用程序,该应用程序也链接到一个Web应用程序,用户可以使用Slack登录.这是很常见的一个新用户既需要登录到Web应用程序,并添加该应用懈怠.

我想通过OAuth一次性让他们这样做.由于Web应用程序需要每个用户的姓名,电子邮件地址和个人资料图片,因此我将"identity.basic","identity.email"等范围添加到"Add to Slack"按钮请求的范围内.但事实证明,Slack不允许这样做.Slack OAuth页面显示" 请求的权限无效:无法同时请求身份范围和其他范围".

一种替代方案可能是请求用户:read和users:read.email范围而不是标识范围.但是,这为我们的应用提供了超出其需求的访问权 它只需要当前用户的信息,而不是团队中的所有用户.(它可能稍后需要所有用户的信息,所以无论如何我都在考虑这样做,但我不确定用户是否会喜欢它.)

另一种选择似乎是让用户通过两个不同的OAuth权限屏幕.但这似乎很麻烦,而且用户体验也不好.

所以问题是(1)是否有更好的方法,以及(2)为什么Slack不允许将身份范围与其他范围相结合?

更新以澄清,以回应@ erik-kalkoken的回答:

我知道"Add to Slack"和"Sign with with Slack"之间的区别.我当然不打算取消大多数用户做一个简单的"用Slack登录"的选项.但是,对于这个特定的应用程序,没有登录到Web应用程序就做"添加到Slack"是没有意义的.这需要由每个Slack团队的一个人完成,然后该团队的其他用户才能使用它.我们对新团队的入职流程有点麻烦,我正在寻找方法让它变得更简单,更顺畅.由于登录和添加步骤理论上可以合并为一个步骤,我宁愿这样做.

部分原因可能是因为我们没有开发"Slack app"; 我们正在为Web应用程序开发Slack集成.Web应用程序可以在不使用Slack的情况下使用,并且具有自己的用户和社区概念.

oauth slack-api slack

12
推荐指数
1
解决办法
1538
查看次数

dispatch.yaml的语义

我正在查看有关dispatch.yaml的各种页面,其中大部分都包含类似的信息和示例:

https://cloud.google.com/appengine/docs/flexible/nodejs/how-requests-are-routed#routing_with_a_dispatch_file https://cloud.google.com/appengine/docs/python/config/dispatchref https:// cloud.google.com/appengine/docs/go/config/dispatchref

我碰巧在GAE Flexible Environment上使用node.js,但我认为对每种语言和环境都是一样的.

问题是这些页面并没有真正指定dispatch.yaml的工作方式.特别是:

  1. 是否按照给定的顺序应用规则?我假设第一个匹配规则是使用的规则,但似乎没有任何说法.
  2. 前导的glob(通配符)字符只与域名匹配,还是可以匹配URL路径的第一部分?如果规则是*/hello,那会匹配myapp.appspot.com/path/hello吗?基于文档中的一些模糊提示,我猜不是,但它不是很清楚.
  3. 如果dispatch.yaml中的规则与URL不匹配,它是否会路由到默认服务?我认为它必须,但再次,这些页面不说.
  4. 在将URL发送到服务之前,是否会根据规则重写URL?如果规则是*/path/*并且URL是https://myapp.appspot.com/path/hello,那么服务是否会将其视为/path/hello或如此/hello?我在猜测前者.

我现在正在做一些试验和错误,所以我很快就能回答我自己的问题.我也是通过他们的文档反馈系统将此提交给Google.

google-app-engine app-engine-flexible

6
推荐指数
1
解决办法
1164
查看次数