Android 当用户从外部服务登录时,如何检查后端服务器上的用户标识

Android 当用户从外部服务登录时,如何检查后端服务器上的用户标识,android,facebook,authentication,server,google-oauth,Android,Facebook,Authentication,Server,Google Oauth,我试图在我的Android应用程序中通过Google/Facebook实现身份验证,但我不知道如何验证发送到后端服务器的请求是否真的来自经过身份验证的用户 我会尽力解释的。 当我使用更经典的方式(如登录/密码)对用户进行身份验证时,我只需要检查服务器端的凭据并返回令牌。 在接下来的请求中,我只需将令牌添加到其中,我的服务器就可以验证令牌对于发出请求的用户是否有效 当我使用外部登录(如Google或Facebook)时,用户显然在客户端通过相应的SDK进行身份验证,但我的服务器没有关于此身份验证的

我试图在我的Android应用程序中通过Google/Facebook实现身份验证,但我不知道如何验证发送到后端服务器的请求是否真的来自经过身份验证的用户

我会尽力解释的。 当我使用更经典的方式(如登录/密码)对用户进行身份验证时,我只需要检查服务器端的凭据并返回令牌。 在接下来的请求中,我只需将令牌添加到其中,我的服务器就可以验证令牌对于发出请求的用户是否有效

当我使用外部登录(如Google或Facebook)时,用户显然在客户端通过相应的SDK进行身份验证,但我的服务器没有关于此身份验证的任何信息:我没有双方都知道的令牌。 如果我只使用OAuth2身份验证返回的用户id调用服务,那么我根本没有安全性。任何人都可以用随机id给我的服务打电话,获取我的用户信息

我可能在这个过程中遗漏了一些简单的东西,但在寻找了几个小时的解决方案后,我没有找到一个好的解释

如果我在注册用户id时添加了一个返回令牌的服务,任何人都可以调用它并获取令牌,因此这不是更安全的

我可以添加一个应用令牌来检查这是否是正在调用服务的我的应用。这是一个更安全的一点,但任何人都可以反向工程我的应用程序,以找到令牌


感谢您的帮助。

当您使用face book进行身份验证时,它会生成一个身份验证令牌。若FaceBook已经验证了你们的用户,那个么任何无效用户将如何窥视其中并获取关于任何用户的信息


按照本教程操作是实现face book登录的最佳选择当您使用face book进行身份验证时,它会生成身份验证令牌。若FaceBook已经验证了你们的用户,那个么任何无效用户将如何窥视其中并获取关于任何用户的信息


您可以按照本教程进行操作,这是实现face book登录的最佳选择

我将分享我最终理解的内容

与登录名/密码的连接:

用户输入其凭据 凭证将被发送到后端服务器 凭据在服务器端进行控制 服务器返回一个身份验证令牌 auth令牌与来自用户的所有请求一起传递 服务器控制每个请求的身份验证令牌 与谷歌的连接:

用户通过Google进行身份验证 该应用程序被授权调用谷歌API 应用程序向Google请求令牌 Google令牌被发送到后端服务器 服务器检查Google令牌有效性签名和内容 服务器返回一个身份验证令牌 auth令牌与来自用户的所有请求一起传递 服务器控制每个请求的身份验证令牌 资料来源:

与Facebook的连接:

用户通过Facebook进行身份验证 该应用程序从Facebook获取令牌 Facebook令牌被发送到后端服务器 服务器调用Facebook API以检查Facebook令牌 服务器返回一个身份验证令牌 auth令牌与来自用户的所有请求一起传递 服务器控制每个请求的身份验证令牌 资料来源:


我想在每个请求中都可以使用Google或Facebook令牌,但我认为在将来的请求中使用相同的方法来检查令牌更容易。

我分享了我最终理解的内容

与登录名/密码的连接:

用户输入其凭据 凭证将被发送到后端服务器 凭据在服务器端进行控制 服务器返回一个身份验证令牌 auth令牌与来自用户的所有请求一起传递 服务器控制每个请求的身份验证令牌 与谷歌的连接:

用户通过Google进行身份验证 该应用程序被授权调用谷歌API 应用程序向Google请求令牌 Google令牌被发送到后端服务器 服务器检查Google令牌有效性签名和内容 服务器返回一个身份验证令牌 auth令牌与来自用户的所有请求一起传递 服务器控制每个请求的身份验证令牌 资料来源:

与Facebook的连接:

用户通过Facebook进行身份验证 该应用程序从Facebook获取令牌 Facebook令牌被发送到后端服务器 服务器调用Facebook API以检查Facebook令牌 服务器返回一个身份验证令牌 auth令牌与来自用户的所有请求一起传递 服务器控制每个请求的身份验证令牌 资料来源:


我想在每个请求中都可以使用Google或Facebook令牌,但我认为在将来的请求中使用相同的方法来检查令牌更容易。

对不起,我不明白。如果我是对的,当用户登录Facebook时,我会在我的应用程序中获得一个身份验证令牌。所以我可以安全地调用Facebook API。没关系。但是我自己的服务呢。我自己的服务器不知道facebook返回的身份验证令牌。我如何使用th
当用户从face book登录时,token是否具有我自己的服务。您可以获取用户的姓名和其他信息。至于您自己的服务器,只要FaceBook验证它,您就不必这样做。如果登录成功,你会得到AUTH令牌,考虑到你的服务器。是的,谢谢你的响应,我在晚上已经明白了:当我从谷歌或脸谱网获得AuthToG时,我把它发送到我自己的服务器,服务器调用谷歌或脸谱网API来验证令牌。我第一次没有意识到我需要从后端服务器打电话给谷歌或Facebook。对不起,我不明白。如果我是对的,当用户登录Facebook时,我会在我的应用程序中获得一个身份验证令牌。所以我可以安全地调用Facebook API。没关系。但是我自己的服务呢。我自己的服务器不知道facebook返回的身份验证令牌。如何将此令牌用于我自己的服务?当用户从face book登录时。您可以获取用户的姓名和其他信息。至于您自己的服务器,只要FaceBook验证它,您就不必这样做。如果登录成功,你会得到AUTH令牌,考虑到你的服务器。是的,谢谢你的响应,我在晚上已经明白了:当我从谷歌或脸谱网获得AuthToG时,我把它发送到我自己的服务器,服务器调用谷歌或脸谱网API来验证令牌。我第一次没有意识到我需要从后端服务器给谷歌或Facebook打电话。