我在 React 中有一个 Web 应用程序,目前正在使用 Clerk 进行连接,这对于简单电子邮件/密码和 Google 连接来说效果很好。
现在,我只想通过“使用 Google 登录”按钮与 Google 连接,但我希望它仅适用于我的帐户。 网络应用程序应该可公开访问,但只有我的帐户应该能够登录.我应该如何进行?该网络应用程序将仅使用 Google Sheet API。
(如果我可以保留 Clerk,那很好,但如果我必须使用 Google 服务的本机 OAuth 实现,那也很好)
我搜索了多个主题(在 SO 或其他网站上),但它们的用例仅适用于特定域或特定用户组。我只想通过 Google 身份验证轻松使用我的帐户。
这是一个身份验证与授权问题。这与许多公司设置类似,只有经过管理员批准的员工才能获得授权。
授权服务器角色
通常在 OAuth 中,您使用授权服务器 (AS),使管理员能够创建预先批准的用户帐户,例如在
accounts
表中。就您而言,这只是您。登录后,AS 会发出最适合您的 API 和应用程序的 OAuth 令牌。
身份提供商角色
使用 Google 登录选项是一种身份验证方法,Google 通常具有 IDP 角色。您无法阻止拥有 Google 帐户的人进行身份验证,因为您无法控制该系统。
身份验证后操作
Google 登录完成后,AS 可以运行操作来检查用户是否存在于帐户表中,否则拒绝访问。
如果您不使用 AS 并直接与 Google 集成,则必须在应用程序级别执行此操作。