【发布时间】:2020-08-02 10:30:47
【问题描述】:
我们有一个经典的 C-S(客户端-服务器)架构,即一个移动应用程序和一个业务服务器。我们有我们自己的 帐户系统(不使用第三方帐户,例如 Google/Facebook 帐户)。我know 我应该使用 OAuth2 进行身份验证。问题是,我应该如何实现?
有两件事我在网上没有找到:
- 我们使用的是我们的自己的帐户系统 - 没有 Google/Facebook 帐户。
- 用户应在本机应用 UI 中输入密码,而不是在应用中嵌入的浏览器网页中。
问题:
- 我认为我们可以使用“资源所有者密码授予”模式。用户在本机 UI 中输入密码,然后我们收集并向服务器发送 HTTPS 请求等。但是我有 seen 有人说它不安全......所以我应该使用它吗?
- 如果我们应该使用“授权码”模式,我应该如何让用户在 native UI 中输入他的密码?
非常感谢!
附言。如果我们没有自己的账户系统,单纯依靠谷歌/Facebook的账户,那么一切都很简单。我们可以在互联网上使用任何博客或article 或answer。但是我们需要我们自己的帐户系统。
【问题讨论】:
-
根据您提供的信息,听起来您实际上并不需要 oauth2(顺便说一句,这不是身份验证协议),而您只会在 oauth2 中引入不必要的复杂性。
-
@GaborLengyel Er 那么我应该使用哪种方法?人们在link 中告诉我我应该使用 OAuth,所以我真的很困惑......谢谢!
-
好吧,我错过了它是一个移动应用程序的部分。为此,您需要令牌,并且从那里另一个问题的接受答案是正确的,oauth2 是具有知名库的标准解决方案。 (如果它是一个常规的 Web 应用程序,那么您所需要的只是一个普通的旧会话。)我不是 Java 专家,所以我不知道对于 Java 中众所周知的令牌身份验证解决方案还应该考虑什么。它还取决于您要实现的工作流程(是否可以在浏览器中提供一次密码,然后使用本机 ui 等)。
-
@GaborLengyel 谢谢!呃恕我直言,我很困惑如何做 mobile app 端,而不是服务器端(因为我将使用标准库),语言无关紧要,这只是逻辑......所以可以你请提供一些建议?谢谢!
标签: spring security flutter oauth-2.0