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

标签 java android authentication https backend

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

我目前正在使用 apache 的基本身份验证,这意味着只能通过登录名和密码访问脚本目录。据我所知,Android应用程序可以很容易地被反编译,这将揭示身份验证的凭据,因为它们以纯文本形式存储在代码中。如果您考虑有人反编译您的应用程序,我想不出一种不会出现问题的方法。

验证应用程序的正确方法是什么?

最佳答案

您可以使用基于 token 的身份验证机制。

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

该 token 将用作下一次 API 调用的授权承载 header 的值。

这样,就没有什么是硬编码的, token 是动态生成的。 您还必须在过期时间后刷新访问 token 。

关于java - 如何实现正确的 https 客户端身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59886443/

相关文章:

java - Kryonet 没有收到自定义类(class)

java - 直接更改行中的单个值

java - TCP如何在Java中发送/接收实时大数据包?

android - 如何在Android TextView中使用自定义省略号

objective-c - iOS json : put request with token

C# - 无法从数据库获取值

ios - 在ios中注销时删除cookie

java - Java 声明困惑

java - XmlPullParser 正在跳过 START_TAG?

android - 方向改变后,针对 "layout-ldltr"加载 "layout-ldrtl"布局中的 android 错误吗?