繁体   English   中英

如何通过 Next.js 使用 DotNet Core 5.0 身份验证

[英]How to use DotNet Core 5.0 authentication with Next.js

我有一个正在开发的 Next.js 网站和一个连接到 SQL 服务器数据库的 dotnet 核心 API。 我有一个登录页面并打算创建一个页面来添加新用户,并且想知道如何使用 dotnet 核心身份来做到这一点? 我添加了 NextAuth.js package 以为我可以使用它,但是如果直接连接到数据库而不是通过 API 连接到数据库而不是 go,它似乎效果最好。

我设法将令牌返回给 NextAuth.js,但我不知道从哪里到 go。 如何使用 next-auth 管理 session? 或者有没有更好的方法来 go 关于在不使用 NextAuth.js 的情况下执行此操作?

我使用 dotnet 核心身份的原因是因为它已经支持角色并且设置相当简单,并且可以轻松授权 API 的不同部分。 根据用户的角色,他们应该被授权访问某些路线或查看某些页面。

我尝试查看 microsoft Intro to auth for SPA中的以下文档,但我不清楚如何管理 session。

首先,一般来说,当我们使用 JWT 认证时,工作流程如下:

  1. 客户端向服务器发送请求(包含用户信息,例如:名称和密码)以获取令牌
  2. 服务器接收用户信息并检查授权。 如果验证成功,服务器会生成一个 JWT 令牌。
  3. 客户端接收令牌并将其存储在本地某处。
  4. 客户端在未来的请求中发送令牌。
  5. 服务器从请求 header 中获取令牌,再次计算 Hash,方法是使用 a) Header 来自令牌 b) 来自令牌的负载 c) 服务器已经拥有的密钥。
  6. if ("newly computed hash" = "hash come in token"),token有效,否则被调和或无效

配置后,您的应用程序使用身份验证和 JWT 身份验证。 当用户登录时,您可以将用户信息发送到服务器端并检查当前用户是否有效,然后生成 JWT 令牌,在客户端您可以将令牌存储在 web 存储中。 之后,当您想通过将此令牌传递给身份验证 HTTP header 来访问资源时。 更多详细信息请参考以下文章: JWT Authentication In ASP.NET Core

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM