2017-03-03 37 views
0

我正在为现有网站开发一个android应用程序,所以我开发登录部分到一个android应用程序,我使用oAuth protocol.i为用户数据提供了API,并从网站生成了client_idclient_secret_key。问题是。如何在使用OAuth时在Android应用上存储'client_secret'和'client_id'?

  • 如何存储这些client_idclient_secret(在移动应用或任何支持的客户端Web Service)
  • 当我使用支持客户端的Web应用程序来存储客户端ID和秘密我如何验证用户身份。

该网站建立在larevel php框架上。

+0

你为什么不使用string.xml保存数据? – sadat

+0

不,它是不安全的方式..时下使用支持的Web客户端存储数据..但事情是我没有关于它是如何工作 – cpk

回答

0

要回答你的第一个问题,请使用共享首选项。共享首选项允许您以键值对的形式保存和检索数据。 第二个问题,从共享首选项中读取并将结果发送回Web服务器。检查是否存在数据,然后获取该值,验证它并相应地发送它。我建议使用这个真棒图书馆作为您的questions.retrofit2奖金。

+0

谢谢你的help.i引用它..是共享偏好是非常安全的方法对于存储有价值的数据?..没有任何关于使用另一个后端客户端存储客户端ID和其他东西的想法。 – cpk

+0

是什么?我没有得到最后一部分。 – Remario

+0

我的意思是将这些数据存储在另一个网站和应用程序与该网络应用程序通信,并交换令牌。 – cpk

0

如果您想要安全地将id保存在应用程序中,您可以使用Keystore。

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); 

// get user password and file input stream 
char[] password = getPassword(); 

java.io.FileInputStream fis = null; 
try { 
    fis = new java.io.FileInputStream("keyStoreName"); 
    ks.load(fis, password); 
} finally { 
    if (fis != null) { 
     fis.close(); 
    } 
} 

https://developer.android.com/reference/java/security/KeyStore.html

+0

@Michal感谢您的宝贵意见,我会参考它,这是非常安全的方式来存储数据。任何人都可以解码的apk和可以获得文件easy.no有关使用另一个后端Web客户端的任何想法? – cpk

+0

这与用于保护Play商店中的应用免受冒充的机制相同。如果它不安全,那么这将是一个严重的问题。它被加密。即使他们拥有密钥库,他们仍然需要密码。密码不保存在应用程序内。 –

相关问题