【问题标题】:Hide JSON file from public; only access for my Android app对公众隐藏 JSON 文件;只能访问我的 Android 应用
【发布时间】:2017-06-21 02:17:57
【问题描述】:

我想对公众隐藏我的 JSON 文件。这样没有人可以下载此 JSON 数据或通过浏览器浏览我的 JSON 文件。 我只希望我自己开发的应用可以得到这个JSON文件的信息。

有没有办法对此进行编码?感谢您的回答。

【问题讨论】:

  • 您必须创建一个可以明确识别您的应用的进程。它不是 100% 安全,但总比没有好
  • 我必须在我的 JSON 文件中执行此操作吗?你能告诉我我是如何编码的以及哪些方面可以识别我的应用程序吗?
  • json 存储在哪里?
  • 您可以尝试使用网络服务器的身份验证,或者使用服务器端代码在您的网络空间中进行身份验证。您必须以纯文本(不推荐)或某些只有您可以解密的加密数据发送您的身份证明
  • 有很多方法可以做到这一点,具体取决于服务器端技术。没有一个答案

标签: android json


【解决方案1】:

您需要做的是使用只有您的服务器和客户端(移动应用程序)知道的令牌,同时调用您的服务器以获取 json 数据。查看以下教程,了解如何使用令牌从服务器获取数据。

android token authentication


retrofit token authentication

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("https://yourbackend.example.com/tokensignin");

try {
    List nameValuePairs = new ArrayList(1);
    nameValuePairs.add(new BasicNameValuePair("idToken", idToken));
    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    HttpResponse response = httpClient.execute(httpPost);
    int statusCode = response.getStatusLine().getStatusCode();
    final String responseBody = EntityUtils.toString(response.getEntity());
    Log.i(TAG, "Signed in as: " + responseBody);
} catch (ClientProtocolException e) {
    Log.e(TAG, "Error sending ID token to backend.", e);
} catch (IOException e) {
    Log.e(TAG, "Error sending ID token to backend.", e);
}

或者添加一个token来改造NetworkInterceptor

 builder.setRequestInterceptor(new RequestInterceptor() {
              @Override
              public void intercept(RequestFacade request) {
                  request.addHeader("Authorization", authToken);
              }
          });
      }

【讨论】:

  • 请使用链接中的任何相关引用描述您的答案中的步骤。这样,如果链接中断您的答案仍然有用。查看How to Answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多