2017-05-31 126 views
0

我有一个web应用前端和web api后端都写在ASP .Net Core 1.1 MVC。我使用Auth0作为认证服务器,使用“授权码授权流程”。从web api获取登录用户

因此,用户登录 - 即用户被引导至Auth0的登录屏幕,如果用户名和密码正确,则向Web应用程序发回授权代码,然后Web应用程序交换访问令牌,然后用于所有web api调用。

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

谢谢

回答

1

我会的OAuth 2.0规范方面回答。

规格决定了4个角色:

  1. 资源所有者
  2. 资源服务器
  3. 客户
  4. 授权服务器

在您的上下文:

  1. 资源所有者是最终用户。
  2. 资源服务器是您的Web API。
  3. 客户端是您的Web应用程序。
  4. 授权服务器是Auth0。

遵循的步骤:

  1. 你的网络API应在授权服务器 (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请求中。
+0

谢谢Artem! – user1900799