【问题标题】:Save access_token via shared preferences android通过共享首选项 android 保存 access_token
【发布时间】:2018-07-30 22:52:15
【问题描述】:

我的应用程序从服务器获得了一些响应,并且在该响应中我还收到了访问令牌,我必须在我的进一步操作中使用它,通常我设法从我的响应中获取此令牌,现在我可以在 textView 中看到它.但无论如何,我必须像刷新以下令牌一样创建 smth,因为我认为在当前令牌过期后,我的用户不会很乐意多次登录我的应用程序。所以现在我有一个非常严重的问题,比如如何插入以下令牌,我可以从我的响应中得到我的请求:

@Headers({"Content-type: application/json",
        "Authorization: Bearer my token"})
@GET("/v1/message/list")
Call<ListOfMess> getInMess(@Query("type") int type, @Query("offset") int offset);

现在我必须每半小时插入最后一个令牌,因为我无法获取任何数据。我尝试将以下标记插入到我的改造初始化中:

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://server/")
                .client(client)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

但它不能正常工作。因此,经过一段时间后,我知道我可以通过 sharedpreferences 存储以下令牌,而不是将其插入到任何地方,但我不知道如何创建它。我希望你能帮助mw解决以下问题。而且,如果您知道一段时间后通过某些请求刷新我的令牌的方式,我将很高兴看到您的回答)) 对不起,我的语言不好。

【问题讨论】:

  • 您的应用程序通常无法查看访问令牌内部以了解其过期时间。相反,它会在将令牌呈现给服务器时发现令牌已过期/无效。那时,您必须从应用程序重新进行身份验证。你剩下的问题很难理解。过去,我将访问令牌作为纯字符串存储在共享首选项中。
  • 是的,我同意你的看法,我认为我会在小于 0.5 小时的时间内为获得新令牌创建一些响应,但我不明白我是怎么做到的可以保存当前令牌,然后如何将其插入我的界面?
  • 我不明白你想在这里做什么。
  • 我正在尝试将最新的令牌插入到我界面的标题中,并在需要时刷新它。现在我必须手动插入我的最后一个令牌,但我想从我的服务器的成功答案中获取以下令牌,然后将其插入我的界面,然后在一小段时间后刷新它

标签: android sharedpreferences access-token


【解决方案1】:
    //Save token here
    String token = "Some token From Server";
    SharedPreferences preferences = getActivity().getSharedPreferences("MY_APP",Context.MODE_PRIVATE);
    preferences.edit().putString("TOKEN",token).apply();


    //Retrieve token wherever necessary
    SharedPreferences preferences = getActivity().getSharedPreferences("MY_APP",Context.MODE_PRIVATE);
    String retrivedToken  = preferences.getString("TOKEN",null);//second parameter default value.

【讨论】:

  • 太好了,我的问题是:将 access_token 和 refresh_token 存储到 shared-preference 中是否可行且安全?
  • 我进一步的意思是:应用程序关闭后我可以访问它并稍后重新打开吗?
  • 是的,很明显,您可以在重新打开应用程序后检索令牌
  • 安全性如何?插件在哪里存储像令牌这样的安全项目?它存储在 localStorage 还是文件中?请解释一下,它如何保护我的令牌在设备上。
猜你喜欢
  • 2012-03-29
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
相关资源
最近更新 更多