在两个android应用程序之间共享身份验证信息



我知道以前有人问过这个问题,但我仍在寻找更好的答案,因为我不相信其他解决方案。

我的用例是-我想在两个不同的移动应用程序之间共享身份验证信息。基本上,如果用户成功登录到一个应用程序,然后如果用户打开另一个应用,则该用户应该登录

进行了研究,发现内容提供商是解决方案。

我做了同样的POC,发现它非常有用。但对于内容提供商,最好使用设置为signature保护的android:protectionLevel属性,以便只有使用相同密钥签名的应用程序才能从内容提供商查询数据。在我的情况下,应用程序是not signed using the same key。如果没有这一点,我发现内容提供商的帮助就不大了,因为我需要共享身份验证信息,而安全性是最重要的。如果我仔细看了这里的任何东西,请突出显示。

最重要的是,我可以通过在其他应用程序中加密和解密来将数据存储在内容提供商中。接下来的挑战是,我如何安全地将加密/解密密钥保存在android应用程序本身中?我应该在CPP文件中共享它吗?因为从CPP文件中很难获得信息?

有没有其他安全的方法可以在其他应用程序中提供数据信息?

附言:这个问题就像一个解决问题的问题,我正在寻求指导,这就是为什么没有在这里发布任何代码。那将是多余的。

您可以使用带有AIDL的服务在应用程序之间进行通信:

Android界面定义语言(AIDL(与其他IDL:它允许您定义编程接口客户和服务达成一致,以便相互沟通使用进程间通信(IPC(。

https://developer.android.com/guide/components/aidl

您可能还需要定义Android 11(API 30级(的查询

<manifest package="com.example.app">
<queries>
<!-- Specific apps you interact with, eg: -->
<package android:name="com.example.service" />
</queries>
...
</manifest>

相关内容

最新更新