Authentication 从web api获取登录用户

Authentication 从web api获取登录用户,authentication,asp.net-core-mvc,asp.net-core-webapi,Authentication,Asp.net Core Mvc,Asp.net Core Webapi,我有一个web应用程序前端和web api后端都是用ASP.NETCore1.1MVC编写的。我使用Auth0作为身份验证服务器,使用“授权码授权流” 因此,用户登录-即,用户被定向到Auth0的登录屏幕,如果用户名和密码正确,该屏幕将向web应用发回授权码,然后web应用将该授权码交换为访问令牌,然后用于所有web api调用 然后,用户单击一个链接,该链接使web应用程序调用web api操作。我的问题是,web api如何知道是哪个用户发出请求?或者,在用户成功登录时,web应用程序应该调

我有一个web应用程序前端和web api后端都是用ASP.NETCore1.1MVC编写的。我使用Auth0作为身份验证服务器,使用“授权码授权流”

因此,用户登录-即,用户被定向到Auth0的登录屏幕,如果用户名和密码正确,该屏幕将向web应用发回授权码,然后web应用将该授权码交换为访问令牌,然后用于所有web api调用

然后,用户单击一个链接,该链接使web应用程序调用web api操作。我的问题是,web api如何知道是哪个用户发出请求?或者,在用户成功登录时,web应用程序应该调用web api中的控制器,并告诉它哪个用户刚刚登录?不确定最佳实践是什么


谢谢

我将根据OAuth 2.0规范回答您的问题

规范确定了4个角色:

  • 资源所有者
  • 资源服务器
  • 客户
  • 授权服务器
  • 在你的背景下:

  • 资源所有者是最终用户
  • 资源服务器是您的Web API
  • 客户端是您的web应用程序
  • 授权服务器是Auth0
  • 遵循以下步骤:

  • 您的Web API应该在授权服务器上注册 ()
  • 您的Web API应该负责验证访问令牌 用于请求API。此访问令牌包含有关的信息 最终用户/客户端()
  • 您应该在授权请求中包含Web API范围
  • 您应该在web应用程序中获取访问令牌,并将其包含在对web API的HTTP请求中