我有基于bcrypt gem的用户授权系统的Ruby on Rails应用程序。还有一个iOS应用程序,我需要提供此应用程序的授权系统。 我怎么能以最好的方式做到这一点? 建议,将开放密码从iOS传递给RoR是不安全的。为所有记录创建一个盐?或者只有ssl是变种?
答案 0 :(得分:1)
如果您要让第三方客户端应用程序访问API,那么您将需要使用oAuth之类的内容。
如果您将控制所有客户端,那么通过SSL传递用户名/密码进行身份验证是安全的(足够)。
如果您不想在每次请求时通过线路发送U / P,或者想要更容易撤消客户端访问,请考虑允许U / P进行一次身份验证,然后获取一个身份验证令牌,用于所有后续请求。像Devise :: token_authenticatable。
This post解释了为什么Devise(如果你使用的是RoR我猜你正在使用设计进行身份验证)弃用了token_authenticatable以及你可以做些什么作为回应。
最终,如果您没有使用SSL与服务器通信,那么就没有安全的解决方案,因为您的流量很容易被嗅探,然后您的客户端应用程序被模仿。