当我第一次听说OAuth在ASP.NET Web API应用程序中时,我已将其用作授权用户访问RESTful API资源的方法。当我觉得我正确使用它时,但是现在我认为我的想法是错误的,这是这个问题的主题。
当时,我以下列方式使用OAuth:在API上有一个令牌端点来发出令牌。我在SPA中创建了一个登录页面,并使用授权类型密码将用户名和密码发布到令牌端点,并且我开始随每个请求发送回来的令牌。
当请求的Authorization: Bearer [token]
标头带有在登录页面上发布了某个用户名的令牌时,我知道请求已经完成"用户已登录"所以我可以授权访问资源。
深入研究OAuth我的结论是我对OAuth的使用完全错误。
我现在的理解是,OAuth仅用于授权应用程序而不是用户。在那种情况下,当我们使用Authorization: Bearer [token]
标头发出请求时,我们说要向资源服务器标识发出请求的客户端已被授权访问资源,但我们没有说任何关于用户的信息?
在这种情况下,使用OAuth,我们可以说客户端应用程序可以访问哪些资源,但我们没有信息来决定是否允许用户访问资源?因为我最初的用法确实是错的吗?