我想建立一个小的移动应用程序(Android和iOS)和一个带有REST Api的小型后端服务器。提供与我的服务器安全的Facebook身份验证
我的应用程序用户(android或iOS)需要在Facebook上登录。我通过使用Facebook移动SDK做到这一点。当登录成功后,facebook sdk将返回一个authentificationToken,即现在在用户智能手机上。
想法如下: 每当我的应用程序需要一些数据时,应用程序将通过HTTPS与我的服务器后端(REST)进行连接。例如:应用程序进行简单的HTTP GET并传递检索到的Facebook身份验证令牌。我的服务器获取此facebook authenticationToken并使用此令牌来确定用户是否已通过身份验证并检索Facebook个人资料信息(名字,姓氏等)。因此,服务器也与Facebook联系,并为HTTP GET请求生成个性化响应。
我的问题是:
- 是否真的足以通过该facebookAuthentication令牌每个REST API调用,使服务器获取正确的关联Facebook的用户?
- 我使用HTTPS,所以我猜连接已经足够加密了吧?
- 我想我需要一些签名机制,以便签署每个REST API调用(通过HTTPS),以确保facebookAuthentication令牌仅从我的移动应用程序发送。我将通过使用带SHA-1的RSA来签署任何REST API调用。但是这种方法的问题是:客户端需要在App的某个地方存储私钥(用于签名请求),服务器知道公钥(用于签名匹配)。它是否正确?如果是的话,我认为它是一个很大的安全问题,因为移动应用程序(尤其是Android)可以被反编译以获得私钥。如何将这个私钥安全地存储在我的应用程序中?是否有另一个可以推荐的系统?
Bt:你知道iOS和Android的一个很好的RSA库吗?