【问题标题】:oAuth2.0 implementationoAuth2.0 实现
【发布时间】:2020-06-09 16:10:18
【问题描述】:

有两个不同的站点。第一个是存储用户名/密码(存储在 MySQL 数据库中)。 第二个将根据第一个站点的用户名/密码实施 oAuth2.0。 在第一个站点的基础上,将开发一个 Web 服务来验证用户名/密码。 工作计划将如下所示: 用户进入第二个站点的页面,输入第一个站点的用户名/密码并点击“登录”。 点击按钮后,从用户名/密码向验证网络服务(第一个站点)发送请求,如果用户名/密码正确,网络服务返回一个唯一的用户 ID。 我是否理解正确,为了生成访问令牌,仍然需要在第二个站点上创建用户(这不利于安全)?

【问题讨论】:

  • 请阅读 OAuth。您将需要某种授权服务器来处理所有应用的授权过程。

标签: javascript oauth oauth-2.0


【解决方案1】:

是的,我会这么说。这是因为任何一个站点都不知道另一个站点的用户。同一个用户作为单独的实体存在于其中。

但是,如果这两个网站都归您所有,那么您可以执行以下操作...

  • 让您的用户登录 Site2.com
  • 身份验证后,您将获得来自提供商(例如 google)的一些身份信息
  • 使用电子邮件 ID 创建到 Site1.com 的会话(无需登录)
  • 并且用户没有通过单点登录同时登录两个站点:)

OAuth(版本无关)涵盖了更大范围的用例。

问题是,您为什么要使用 OAuth 并让您的用户多次登录。您的网站是否像其他应用程序的门户一样。那会很好:),但很难实现。

【讨论】:

  • 感谢您的回复。我们没有 Google、Facebook 等身份提供商。 Site1.com 不支持 OpenID 标准。 Site1.com 只能提供验证用户名/密码的网络服务。据我了解,Site1.com 必须实施 OpenID 标准才能成为身份提供者
  • 如果您能对您的 OAuth 场景进行更多解释,我可以从那里指导您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 2014-04-02
  • 1970-01-01
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多