我们正在开发一个iOS应用,用户需要使用电子邮件+密码(或手机号码)进行身份验证。我们的后端由几个使用Akka-Http的微服务组成。它需要快速,可扩展,并发,并且身份验证和授权应该可以在我们的多种服务中工作。
我正在尝试找出要使用的身份验证方法。
Akka-HTTP当前提供基本身份验证和OAuth2的部分实现。
因此,起初我们考虑使用基本身份验证(过于简单且功能不足),Oauth1(过于复杂),因此我们转向了OAuth-2.0,因为它是一种标准。
然后,我们考虑了AWS Cognito,因为它结合了Oauth-2.0和OpenID Connect,从而提供了OAuth2缺少的身份验证机制。
http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html
然后我们意识到OAuth2仅用于使用第三方进行身份验证-实际上,我们不需要第三方身份验证提供程序-也许我们需要自己进行身份验证,而使用Cognito是一种过大的杀伤力,它会在我们的外部创建额外的api调用微服务...
因此,我读了一些有关使用WSSE规范创建自己的自定义身份验证提供程序的信息:
http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html
我也使用Spray找到了这个示例,但是我敢肯定它与Akka-Http并没有什么不同:
http://danielasfregola.com/2015/06/29/how-to-create-a-spray-custom-authenticator/
它看起来过于简化,并且没有 token 过期...
所以我的问题是,我缺少什么吗?我应该选择哪种方法,在哪里可以找到示例?
我觉得我要绕圈了,我们将不得不从头开始编写我们自己的自定义身份验证提供程序,这有点没有道理。毕竟,几乎每个人都需要身份验证,这应该是一个标准。
最佳答案
我最近一直在使用SoftwareMill的akka-http-session库,发现它易于集成。它支持基于案例类的 session ,JWT,具有可插拔存储的刷新 token ,使用 header 和CSRF token 以及一些在路由中使用的简单指令。
关于scala - 使用Akka-Http进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151680/