我想更好地理解隐式授权流和授权代码授权流之间的差异,因为我不确定我当前的理解是否正确。
由于
答案 0 :(得分:2)
The OAuth 2.0 Authorization Framework (RFC 6749)意味着:
隐式流仅适用于基于浏览器的OAuth客户端应用程序或JavaScript NOT 移动设备或可以使用授权代码授权的其他应用程序
隐式授权类型用于获取访问令牌(事实并非如此) 支持刷新令牌的发布)并针对公众进行了优化 已知运营特定重定向URI的客户端。
有关使用隐式授权的背景信息,请参阅第1.3.2节和第9节。 有关重要的安全性考虑,请参见第10.3节和第10.16节 使用隐式授权时。
使用隐式授权类型时,访问令牌将在URI片段中传输,这可能会将其暴露给未授权方。
-Jim
答案 1 :(得分:1)
虽然jwilleke回答了你提出的大多数问题,但我会回答你的具体问题,
隐式授权类型用于获取访问令牌(事实并非如此) 支持刷新令牌的发布)并针对公众进行了优化 已知操作特定重定向URI的客户端。这些客户 通常使用脚本语言在浏览器中实现 比如JavaScript。
它被公共客户使用。他们没有客户的秘密。这是因为他们无法保护这些秘密,因为它们在浏览器上运行。
授权码的生命周期可以为几秒(30秒)到几分钟(2分钟)。与其他令牌相比,它们是短暂的。
这取决于访问令牌的生命周期。如果长时间运行的任务和令牌过期,您将必须获取新的访问令牌以进行授权。但是,如果您的特定后端建立会话,则它可能比访问令牌具有更长的生命周期。
刷新令牌的一个优点。它可用于在没有最终用户交互的情况下刷新访问令牌(全新登录)。此外,根据OAuth服务器的实现,您可能会获得具有不同生命周期的访问令牌。例如,授权服务器可能会因为公共客户端使用它而为隐式流发出短期访问令牌。
这取决于。如果资源服务器需要从另一个授权使用访问令牌的资源服务器使用受保护资源,那么您的资源服务器也需要客户端ID并遵循特定流程来获取令牌。但如果它没有在外面进行通信,那么您就不必为其获取客户端ID。