使用Facebook SSO作为唯一login机制,使用iOS客户端对REST API进行身份validation

我正计划使用Facebook作为我正在构build的应用程序的唯一login机制,并且需要对devise提供一些反馈。 这里呢 –

用户打开应用程序,并显示一个注册屏幕。 Facebook的授权stream程开始,让我们假设成功,用户已成功注册自己。 一旦成功,应用程序调用FacebookgraphicsAPI,并获取用户的名字,姓氏,电子邮件,出生date等数据,然后应用程序调用一个名为RegisterUser(string Fullname, string FirstName, string LastName ...)的Web服务方法RegisterUser(string Fullname, string FirstName, string LastName ...)在数据库中创build用户logging。

现在,对于后续的API调用,我需要validation请求是否真的来自我的应用程序(不一定是特定的用户)。 我查了一下S3 REST API,看起来每个请求都有一个称为Authorization的HTTP头,客户端通过附加一堆其他HTTP头如Date,Method,Request数据,用客户端的私钥对其进行签名,计算它的base64编码值。 这在服务器端validation以validation客户端。

现在,我很乐意执行所有这些,但有几个问题:

  • 如果我有一个私钥,将它作为iOS应用程序本身的一部分是否安全? 有人可以从iOS应用程序二进制文件中提取密钥吗? 如果是这样,我该如何处理?
  • 有没有其他的改变,你会对这个devise?

谢谢,
Teja公司。

确保你应用单向哈希algorithm的值base64编码 – base64是一个双向编码,所以你不希望窃听者逆向工程从你的私钥。 Amazon S3在执行base64之前先执行SHA-1。

与所有(AFAIK?)编译的二进制文件一样,您的应用程序不能被反编译。