我对使用Android帐户管理器进行身份验证有疑问。我们有一个后端和一个Android应用程序,用户应该使用他的Facebook帐户登录我们的后端。目前我们为此目的展示了一个webview,它可以正常运行oAuth 2,但使用Android帐户管理器对用户来说更安全,更容易,因此我们想切换。我的问题是,服务器如何验证用户是否真的是他假装的人。由于我们无法信任App,因此我们必须从服务器端与fb进行通信,以验证用户是否真的是他假装的人。基于一个非常similar idea,我制作了下面的图表,询问这是否是正确的方法,或者我错过了什么:
流程看起来像这样:
这是正确的方法吗?步骤6是一个好主意,将令牌传递给我的服务器"或者,还有更好的方法?顺便说一句Facebook就是一个例子,我们使用不同的身份验证提供商,如FB,谷歌和Twitter,但每个人的流量应该是相同的。
答案 0 :(得分:9)
我不知道这是否正确。但我想分享一下我们如何在我们的案例中解决这个问题,这与你的解决方案非常相似。我们使用 Google 和 Facebook 身份验证提供商。
我们的Android应用程序将令牌发送到服务器,然后服务器根据提供程序验证令牌,如果它已经过验证,那么如果不是我们显示相应的消息,则用户可以去。每当用户在服务器端打开应用程序时,如果令牌仍然有效,我们用来检查令牌的验证用户可以使用应用程序,如果不是我们只是将用户带回登录屏幕,这样用户可以再次验证自己,因为令牌得到一段时间后过期了。