【发布时间】:2019-08-18 07:10:15
【问题描述】:
我在后端有一个 android 本机应用程序作为客户端和 Spring Boot 服务,带有 REST 端点。我想知道使用 oAuth2 进行身份验证的最佳策略(没有社交登录方法)。
我目前正在使用 spring oauth 安全性并已启动并运行授权服务器(用户使用电子邮件和密码注册)。我使用授权类型“密码”来获取 android 应用程序中的访问令牌。但是,这种方法需要 android 应用在请求中发送客户端 ID 和密码。我读了一些posts,这表明这种授权类型并不理想。我不介意接收用户的密码,但我认为将客户端密码存储在应用程序中并不是一个好方法。
另一种方法是使用授权代码授权流程,但在这种情况下,由于我只有本机应用程序和后端 API,我不知道如何授权用户。用户看到要求他们授权应用程序的浏览器页面似乎不是一种无缝体验。这也没有意义,因为这不是第三方应用程序。
我发现了一个post,人们建议在其中使用带有 PKCE 的授权码流。但这显然不适用于spring。
所以,现在我想知道其他本地移动应用程序如何处理身份验证?他们不使用访问令牌吗?在处理移动应用和 Spring 后端时,我如何才能最好地支持身份验证?
【问题讨论】:
标签: android spring-security oauth-2.0 spring-security-oauth2