使用akka-http执行OAuth2身份验证的最佳方法是什么?

Dan*_* Li 16 scala oauth-2.0 spray akka-http

Akka HTTP和Spray提供了一个authenticateOAuth2指令,但他们的文档说明了这一点

该指令不实现完整的OAuth2协议,而是通过从HTTP头中提取所需的令牌来实现它.

我也找不到任何为Akka HTTP或Spray实现OAuth2的库.有什么我想念的,或者这只是现在这些库的状态?

fel*_*xbr 3

我认为最大的问题是 OAuth2 本身并没有真正告诉你实现细节是什么样的。

引用RFC

令牌可以表示用于检索授权信息的标识符,或者可以以可验证的方式自包含授权信息(即,由一些数据和签名组成的令牌串)。为了让客户端使用令牌,可能需要额外的身份验证凭据(超出了本规范的范围)。

基于资源服务器安全要求,访问令牌可以具有不同的格式、结构和使用方法(例如,加密属性)。访问令牌属性和用于访问受保护资源的方法超出了本规范的范围,并由[RFC6750]等配套规范定义。

例如,您可以使用JWT来验证请求,或者您可以仅使用令牌作为标识符并询问服务该令牌是否允许用于该资源。

根据您的 OAuth2 提供者,实现可能会有所不同,所以我的猜测是框架只能为您提供通用的东西(为您提取令牌),否则它必须实现所有可能的 OAuth2 实现,这在这一点上似乎不可行。

我个人过去使用过pauldijou/jwt-scala,你可能想看一下。