【问题标题】:How to use same account for multiple companies (Just like a same account can be used for multiple workspaces on Slack)如何为多个公司使用同一个帐户(就像一个帐户可以用于 Slack 上的多个工作区)
【发布时间】:2019-06-16 18:01:12
【问题描述】:

我正在开发一个基于 Google App Engine (GAE) 的网络应用程序。该应用程序的要求是一个用户可以与多个公司帐户相关联。

我的应用程序有两种主要类型的帐户。一个是主管理员/公司帐户。其他是员工帐户(即在公司工作的人)。现在,我想做的是允许一个员工在多个公司下工作,但他不必为每个公司单独开一个帐户。他的单个帐户可以与多家公司关联。

我已经探索了已经支持此功能的不同平台。我发现的主要是 Slack 和 Asana。我的问题可以完美地映射到 Slack 现在正在做的事情上,即我在 Slack 上创建了一个帐户,我可以使用这个帐户在 Slack 上加入多个工作区。

我也想在我的应用程序中实现相同的目标。我很好奇 Slack 现在是如何支持这个功能的?它是否会随每个请求向服务器发送一些ID,表明刚刚完成的活动与此ID 下的工作区相关联?或者每个工作区(在 Slack API 级别)都有某种独特的令牌?

我的应用中确实有这样的模型。唯一的 auth_token 与每个公司帐户相关联。所以,我认为当员工想要为特定公司进行活动时,他会将这个唯一令牌与请求一起发送到服务器,以便服务器知道该活动是为哪个公司执行的。

有人知道实现这一目标的最佳方法是什么吗?

【问题讨论】:

    标签: authentication oauth-2.0 slack slack-api asana


    【解决方案1】:

    这里有两个不同的概念:

    帐户与公司/工作区之间的关系

    Slack 帐户的数据结构设计为可以链接到多个 Slack 工作区,例如在 SQL 中,帐户和工作区表之间存在多对多关系。

    保持登录状态

    Slack 和其他单点登录(如 Google SSO)提供的让您保持登录状态的方式是通过设置浏览器 cookie。该 cookie 通常是某种加密哈希,SSO 提供者将使用它来识别当前用户属于哪个帐户,或者如果 cookie 丢失/无效,则通过 OAuth 请求登录。

    这也可以通过服务器会话(也使用 cookie)部分实现。使用服务器会话比实现您自己的(安全)cookie 解决方案更容易实现,但是只要浏览器保持打开状态,用户就会保持登录状态。但这对于大多数解决方案来说已经足够了。

    请注意,Slack API 的令牌的工作方式非常不同。例如它们必须按工作区、用户和应用程序生成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      相关资源
      最近更新 更多