在Android的共享首选项中安全地存储Oauth2访问/刷新标记?

我知道我可以将值设置为“MODE_PRIVATE”,只有我的应用程序/用户ID将能够访问它们,但是,有什么方法让用户在任何时候访问它们? 那么将它们存储在共享首选项中是否“安全”,还是有更好的地方?

此外,如果我稍后决定公开某些用户设置的偏好,我是否可以隐藏这些值?

谢谢。

编辑:我也知道内部存储,但我想知道是否可以实现更简单的共享首选项。

Solutions Collecting From Web of "在Android的共享首选项中安全地存储Oauth2访问/刷新标记?"

共享首选项只是存储在应用程序数据文件夹中的纯文本XML文件。 这不是一个安全的位置,无论如何。 查看这些文件并提取令牌非常容易。 您仍然可以使用共享首选项,但是您需要encryption正在存储的信息。 至于“内部存储”,那些与“共享首选项”共享相同的位置,所以它们仍然很容易查看。

您的未encryption数据可以安全地从手机中运行的其他应用程序中安全传输,而不是来自恶意用户。

如果你想显示一些喜好的用户,你将不必担心这些显示。 我认为shared_preferences可能是存储这些东西的“最安全”的地方。 除非用户拥有根深蒂固的手机,并且他们给予恶意的应用程序根权限才能读取数据文件,就我所知,没有什么可担心的。 虽然我期待别人的回应。 出演!

即使您将访问令牌存储在设备上的安全位置,您也应该认为它可以被透露。 这就是为什么你不应该在你的移动应用程序代码中有客户端秘密。 对于访问令牌,您可以尝试保持它们的安全,但是不能使其100%安全。 所以你不应该得到不必要的范围或不必要的长寿命令牌。

PS。 一般来说,移动设备使用“response_type = token(隐式授权)”,它不应该得到刷新令牌。 这取决于身份validation服务器的策略..