我想弄清楚我将如何引入基于令牌的(基于密钥的?)用于移动客户端的web (目前正在查看Sinatra,但也可能是Rails )的身份验证以及OAuth将如何融入图片。
因此,假设我想创建一个使用Facebook进行身份验证和获取基本用户数据的web服务。在这里,我的API将是Facebook的OAuth服务器的客户端,在用户成功登录Facebook时请求一个访问令牌。然后,这将允许我访问用户的数据,我将使用这些数据在我的数据库中创建一个条目,将这个特定于用户的令牌与我希望链接到它们的任何其他应用程序信息一起存储。
我想到目前为止我已经把这部分做好了,但我有点困惑。
我认为我的API还需要某种形式的API密钥来授予移动用户访问权限,因为我不想在他们的设备上传输和存储Facebook密钥。为了获得我的服务,我是否需要有一个单独的密钥存储库,并提供给客户?有什么“最佳做法”来做到这一点吗?
发布于 2014-10-22 12:32:56
为了获得我的服务,我是否需要有一个单独的密钥存储库,并提供给客户?
是。
有什么“最佳做法”来做到这一点吗?
最简单的方法是在每个用户创建时生成一个单独的身份验证令牌,并将其公开给移动客户端。然后将其与随后的每个请求头一起发送。
Devise提供了如何实现这一目标的简单例子。您不需要为此设计,只需提供一些令牌生成机制。
#Devise.friendly_token
def self.friendly_token
SecureRandom.urlsafe_base64(15).tr('lIO0', 'sxyz')
end此机制可以通过以下方式进行扩展以提供更多的安全性
https://stackoverflow.com/questions/26505356
复制相似问题