如何在用户名/密码和谷歌登录中验证和授权用户?

Posted

技术标签:

【中文标题】如何在用户名/密码和谷歌登录中验证和授权用户?【英文标题】:How to authenticate and authorize a user in username/password and google sign in? 【发布时间】:2020-12-16 08:18:11 【问题描述】:

系统的架构是这样的

    用户可以使用用户名密码方式(注册后)或谷歌登录方式登录网站。

我想知道如何在这种情况下实现身份验证和授权。

这是我正在考虑实施的:

    拥有一个基于 NodeJS 和 Express 构建的 REST API 服务器。 登录和注册过程也由该服务器处理。 使用存储在客户端的 JWT 令牌 进行身份验证。然后这些令牌也会再次用于端点的授权。

这种方法的安全性如何?以及如何将 google 登录添加到此架构中。 如果 OAuth 2.0 中提到,是否需要单独的服务器来发出身份验证请求?

如果系统保持无状态,遵循 RESTFul API 的原则会更好。

【问题讨论】:

【参考方案1】:

我写的这篇文章可能会给你一些见解。

https://dev.to/ralphwjz/login-management-for-spa-and-everyone-else-12o6

该帖子涵盖了 Github 登录,但如果您将 GitHub 替换为 google,则其余流程完全相同。

我可以在上下文中回答更多问题

【讨论】:

以上是关于如何在用户名/密码和谷歌登录中验证和授权用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Lumen 中使用身份验证进行用户登录?为啥我在启动时看到“未经授权”?

如何实现 Web 应用的身份验证和授权

访问谷歌文档的用户的谷歌账户授权

使用用户名和密码获取谷歌身份验证令牌

绕过对用户名/密码的 JConsole 要求 - 当使用带有 JMX 的 Jaas 自定义登录模块来处理授权和身份验证时

如何连接元数据库和谷歌表格?