Web*_*man 3 javascript authentication jwt next.js
我正在 Nextjs 中使用身份验证,我想知道在 NextJS 中处理身份验证的最佳策略是什么?
这里我的服务结构:
如果我理解得很好,我必须在 NextJS 中处理服务器端渲染,所以我知道我必须将 cookie 从我的外部服务器放到我的 NextJS 客户端,然后处理服务器端渲染检查。为此,我假设我必须在 NextJS 服务器和其他服务之间创建连接。在深入研究该主题之前,我会与您讨论可用的可能性。NextJS auth 似乎是一个普通开发的主题。
任何提示都会很棒,谢谢
小智 9
我最近添加了一个带有 cookie auth的示例,它解释了您在前端尝试执行的操作。
对于后端,除了用于呈现 Next.js 应用程序的服务器之外,您最好将 API 放在外部服务器中。该 API 将处理数据库和令牌创建业务。那么认证的基础是这样的:
POST向服务器发送带有用户名和密码的请求。{ token: "secrettoken" }。/dashboard或者,/profile如果一切正常,您可以将用户重定向到或。getInitialProps. 如果 cookie 验证失败,您将用户重定向到其他地方。我创建了一个小型库来抽象这个逻辑。
所以最后,你的 Next.js 应用程序不应该知道服务器中发生了什么,它只应该接收令牌,保存它,验证它,并在出现问题时重定向用户。
您希望如何在外部服务器上处理令牌创建取决于您。
查看此线程。整个线程中有几个如何使用 JWT、OAuth 等进行身份验证的示例。您将看到这些示例正在使用getInitialProps,并且有几个示例始终使用 cookie 来提取身份验证令牌。
您必须编写一个自定义server.js文件,用于express.js通过路由请求提供令牌。我假设“外部服务器”是指使用 OAuth 或 OpenId 协议检索令牌的第三方身份验证器。如果是这样,您的说法是正确的,您需要从这些外部服务请求令牌(或身份验证机制),然后决定如何在自己的客户端中使用它们。getInitialProps一旦渲染到浏览器,您可能会在客户端中使用身份验证令牌来执行您需要执行的操作。
更多身份验证示例请参见此处——一个用于 firebase,另一个用于 Apollo。
| 归档时间: |
|
| 查看次数: |
5195 次 |
| 最近记录: |