OAuth,OpenID或其他解决方案?

时间:2016-10-24 16:44:51

标签: php oauth oauth-2.0 openid

我们希望提供用户必须在我们的网站注册的服务。问题是我们的客户(另一家公司,比如A公司)想要出于安全和垃圾邮件的原因验证每个注册用户确实是经过验证的用户,但他们不会让我们访问他们的数据库(所有的用户已注册)。

我们可以进行人工验证(使用用户身份证),但这不会很有效。这就是为什么我们可能会考虑使用OAuth或OpenID这样的东西来让我们的用户通过他们在A公司的帐户注册/登录。

除了电子邮件/用户名之外,我们还需要为公司A的数据库中没有它的每个用户收集一些额外的信息,并且能够随着时间的推移使用它。也就是说,如果我们可以使用公司A的数据库而无法访问它,以验证我们用户的身份并允许他们注册为经过验证的配置文件,那就太棒了。

我们应该采用哪些技术和程序来实现我们的目标?我们已经听说过有关OAuth和OpenID的内容,但我们不确定这是我们正在寻找的,也不是最适合我们的问题。最重要的是,如果有人可以为我们提供解决方案实施的指导方针,我们将不胜感激,因为它不是典型的Facebook / Google登录,但有大量信息,但我们必须使用数据库。外部公司。

注意:我们使用的是PHP和MySQL

1 个答案:

答案 0 :(得分:1)

此时,如果您要处理身份验证/授权,您应该查看OpenID ConnectOAuth 2.0,因为它们是最新的,而且是采用率提高的。{/ p>

他们共享相似的历史记录,因为在这两种情况下,它们都不向后兼容它们之前的版本,更具体地说是OAuth 1.0和OpenID。

但是,对于这种特定情况,您将依赖于A公司支持的内容。您可以向您的应用程序添加对OAuth2和OpenID Connect的支持,但如果A公司不支持它,您将回到原点。

如果您可以以任何方式影响公司A将为您提供的内容,那么OpenID Connect的兼容实施将是您最好的选择,因为它将允许您的应用程序将其用作验证用户身份的方式,而无需直接访问他们的用户数据库收到经过验证的用户身份后,您可以从用户那里获得更多信息,以便获得更完整的个人资料。

假设公司A确实提供了与之合并的OpenID连接兼容实现,则非常类似于与Auth0Google等任何其他提供商集成。我说的类似,因为您可以检查每个链接,每个提供商可能有自己的扩展和支持库,旨在简化体验。

相关问题