我很难解决如何在REST服务中验证用户的问题。我计划使用Google登录(在Android上)。我无法弄清楚如何在我的服务器上验证用户身份。我不想拥有任何授权(除了验证用户的身份之外),我想要做的就是当我收到请求时,验证用户是否是他(或她)所说的。
我的理解是,用户将登录,从Google获取某种令牌,然后将该令牌发送到我的服务器,我将用它来验证他的身份。但是,根据我的阅读,用户将在JWT(json网络令牌)中对其请求进行编码,然后我将使用它来验证其身份,而无需直接与Google服务器通信。我理解得当吗?
在Google的documentation上,它说
如果您不需要离线访问,则可以检索访问令牌并通过安全连接将其发送到服务器。您可以使用GoogleAuthUtil.getToken()直接获取访问令牌,方法是在没有服务器的OAuth 2.0客户端ID的情况下指定范围。
但它没有说明服务器应该对令牌做什么。
答案 0 :(得分:1)
你有一个Android应用程序,允许用户通过Google+登录登录,然后这个Android应用程序将调用您的REST API。您想要的是您的服务如何验证此请求。此Android客户端将使用令牌向您的服务发送请求,您需要验证此令牌以进行身份验证。我的理解是对的吗?
如果是这样,您需要验证发送到您服务的令牌。您提到的参考资料适用于Google API调用,在您的情况下;这是您自己的服务API调用。对于Android方面,只需按照参考,在服务方面,您可以使用TokenInfo validation对用户进行身份验证。