gpt4 book ai didi

java - 我应该将 token 安全地保存在内存或 sqlite 中吗?或者请建议

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:30 25 4
gpt4 key购买 nike

几天前我开始学习 Android,到目前为止我已经完成了登录 Activity 的实现,主要 Activity 扩展了抽象的基本 Activity 。

点击导航栏项目时会从 Fragments 中打开 xml。

我对成功登录后收到的 token 有疑问。此 token 与每个请求一起使用,以在成功登录后获取数据。我应该将 token 安全地保存在 sqlite 数据库中,还是应该在主 Activity 中创建一个公共(public)属性? Main Activity 将始终保留在内存中,因为这将打开 fragment 。

最佳答案

我可以建议 3 个选项:1) 您可以将 token 保存到文件中,如下所示:

public static void saveToken(Context ctx, String fileName, Object token) {
if (token == null) {
ctx.deleteFile(fileName);
} else {
ObjectOutputStream out = null;
try {
FileOutputStream fout = ctx.openFileOutput(fileName, 0);
out = new ObjectOutputStream(fout);
out.writeObject(token);
fout.getFD().sync();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

确保对象 token 实现了 java.io.Serializable 接口(interface)

API 级别 24 之前的用法:

saveToken(appContext, someFileName, someTokenObject);

API 级别 24 及更高级别的用法:

saveToken(appContext.createDeviceProtectedStorageContext(), someFileName, someTokenObject);

2) 使用SQLCipher库加密数据库。

3) 您可以使用 keystore 系统加密您的 token https://developer.android.com/training/articles/keystore.html

关于java - 我应该将 token 安全地保存在内存或 sqlite 中吗?或者请建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42922921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com