Java 如何实现正确的https客户端身份验证

Java 如何实现正确的https客户端身份验证,java,android,authentication,https,backend,Java,Android,Authentication,Https,Backend,我有一个android应用程序,它通过https连接到我的后端(带有一些php脚本的apache2服务器),以检索存储在数据库中的数据。我的问题是,我不知道如何正确验证我的应用程序,以确保我的后端不被任何其他应用程序访问 我目前正在使用apache的基本身份验证,这意味着只能通过登录名和密码访问脚本目录。据我所知,android应用程序可以很容易地进行反编译,这将显示身份验证的凭据,因为它们以纯文本形式存储在代码中。我想不出如果你认为有人在反编译你的应用程序,那就不会有问题。 什么是认证应用程序

我有一个android应用程序,它通过https连接到我的后端(带有一些php脚本的apache2服务器),以检索存储在数据库中的数据。我的问题是,我不知道如何正确验证我的应用程序,以确保我的后端不被任何其他应用程序访问

我目前正在使用apache的基本身份验证,这意味着只能通过登录名和密码访问脚本目录。据我所知,android应用程序可以很容易地进行反编译,这将显示身份验证的凭据,因为它们以纯文本形式存储在代码中。我想不出如果你认为有人在反编译你的应用程序,那就不会有问题。


什么是认证应用程序的合适方法?

您可以使用基于令牌的认证机制

使用用户在运行时提供的一些有效凭据调用身份验证服务(类似于OAuth2)公开的API将返回一个访问令牌,该令牌将授予对所需资源的访问权限

然后,令牌将用作下一个API调用的授权承载头的值

这样,就不会硬编码任何内容,而是动态生成令牌。 您还必须注意在到期后刷新访问令牌