使用令牌对客户端和服务器端进行身份验证的正确方法?

right way to authenticate client side and server side with a token?

我有一个多平台项目。

它有网页端和 android 端。你们有什么建议来验证我正在通过 Web 服务与之交谈的客户端是我的 android 客户端?有人知道我应该如何验证这两个吗?

我正在考虑在 user table 中保存一个令牌字段,其内容是一些基于客户端数据的唯一哈希值,服务器可以识别这些哈希值。但是,我不知道可以使用哪些信息作为哈希的基础。

我应该使用哪些客户端信息来创建散列值以用作身份验证令牌?

如果需要此信息,我的 Web 服务将作为 restful API 呈现给客户端,并在服务器端写入 PHP。

谢谢。

您可以让客户端和服务器使用 SSL 相互通信,并将服务器配置为需要客户端证书。有关详细信息,请参见示例 https://docs.oracle.com/cd/E19424-01/820-4811/aakhe/index.html

但是,这并不能保护您免受恶意黑客的侵害,黑客可以从您的客户端提取证书并将其添加到自己的应用程序中。