这两个应用程序是用 PHP Laravel Web 应用程序开发的。在应用程序中,应用程序1和应用程序2是两个不同的应用程序,由两个不同的团队管理。应用程序 1 用于修剪视频,而应用程序 2 用于展示他们的视频。
目前两个应用的登录方式都是邮箱密码登录。
POST
将结果发送到应用程序 2(例如 Instagram)。我关心的是App 2的身份验证部分。由于用户登录方式不同,我们如何在将视频发送到App 2之前对App 1中的用户进行身份验证?
不太确定用于此类身份验证的术语。请随时在评论部分告诉我。非常感谢。
通常,如果您有多个共享用户凭据的应用程序,则有一个处理用户会话的 oauth 服务。
例如,谷歌有accounts.google.com作为登录页面。 因此,如果您想登录 gmail / youtube,您将被重定向到accounts.google.com 进行会话检查。如果您已经登录,那么它会自动将您重定向到您将使用的服务。
在您的情况下,您可以将您的应用程序之一作为登录服务,如果其他应用程序想要登录,它可以检查登录服务中的会话,然后重定向到其他应用程序。
CMIIW
可以使用多种方法实现不同应用程序之间的身份验证。
选项 1:OAuth 2.0
OAuth 2.0 是一种广泛使用的身份验证和授权协议。它涉及访问令牌的概念,可用于代表用户授予对资源的访问权限。
实施:
用户登录(应用程序1):当用户登录应用程序1时,生成OAuth令牌。 令牌交换(应用程序 1 到应用程序 2):将此令牌连同视频和用户详细信息安全地发送到应用程序 2。 令牌验证(应用程序 2):应用程序 2 根据其 OAuth 服务器验证令牌。
选项 2:JWT(JSON Web 令牌)
JWT 是表示两方之间声明的紧凑、URL 安全的方式。可以对它们进行签名和加密以提高安全性。
实施:
用户登录(应用1):当用户登录时,生成包含用户信息的JWT。 发送 JWT(应用程序 1 到应用程序 2):将 JWT 与视频一起安全发送到应用程序 2。 令牌验证(应用程序 2):应用程序 2 验证 JWT 的签名并提取用户信息。
选项 3:使用 HMAC 的 API 密钥
此方法结合使用 API 密钥和 HMAC(基于哈希的消息身份验证代码)来实现安全通信。
实施:
生成 API 密钥(应用程序 2):应用程序 2 生成 API 密钥并与应用程序 1 安全地共享。 请求签名(应用程序 1):使用 HMAC 和共享密钥对请求(包括视频和用户详细信息)进行签名。 验证签名(应用程序 2):应用程序 2 使用其共享密钥验证签名。
推荐:
选择最适合您的安全要求和基础设施的方法。 OAuth 2.0 是标准化身份验证的不错选择,而 JWT 提供了轻量级替代方案。如果安全实施,带有 HMAC 的 API 密钥会更简单但更有效。