从web api登录用户

时间:2017-05-31 07:10:48

标签: authentication asp.net-core-mvc asp.net-core-webapi

我有一个Web应用程序前端和web api后端都用ASP .Net Core 1.1 MVC编写。我正在使用Auth0作为身份验证服务器,使用"授权代码授权流程"。

因此用户登录 - 即用户被定向到Auth0的登录屏幕,如果用户名和密码正确,则向Web应用程序发回授权代码,然后Web应用程序交换该代码。访问令牌,然后用于所有网络API呼叫。

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

谢谢

1 个答案:

答案 0 :(得分:1)

我将根据OAuth 2.0规范进行回答。

规范确定了4个角色:

  1. 资源所有者
  2. 资源服务器
  3. 客户端
  4. 授权服务器
  5. 在您的背景下:

    1. 资源所有者是最终用户。
    2. 资源服务器是您的Web API。
    3. 客户端是您的网络应用程序。
    4. 授权服务器是Auth0。
    5. 按照步骤:

      1. 您的Web API应在Authorization Server上注册 (https://auth0.com/docs/apis)。
      2. 您的Web API应负责验证访问令牌 用于请求API。此访问令牌包含有关的信息 最终用户/客户端(https://auth0.com/docs/api-auth/tutorials/verify-access-token)。
      3. 您应该在授权请求中包含Web API范围。
      4. 您应该在Web应用程序中获取访问令牌,并将其包含在Web API的HTTP请求中。
相关问题