我正在开发一个移动应用程序,它将与一个必不可少的json api的rails应用程序进行交互。是否可以使用外部身份提供商(如facebook或googleplus)来保护对我的API的访问权限?
用户会将照片上传到json休息服务,但只有使用其中一个提供商对其进行身份验证后,rails应用才会允许上传。
我已经检查了omniauth gem,但我不知道这是否是这样做的路径。我不太了解oauth是如何工作的,所以我想知道这是否可行。
此致 FAK
答案 0 :(得分:2)
答案部分取决于您将如何通过移动应用程序提供身份。用户的身份验证及其身份已解除耦合。
我的猜测是,您希望用户使用Google / Facebook sdk应用程序端对移动应用进行身份验证。为此,您需要使用该sdk生成令牌,然后可以将其保存到Rails。然后,可以将令牌作为每个API请求的一部分 - rails将验证。
完全描述流程的主题有点复杂....但实质上:1)使用移动sdk在移动应用程序上创建令牌,2)将用户和令牌保存到Rails /数据库,3)作为每个请求的一部分,检查提供的access_token。
由于Oauth和请求/身份提供商的主题需要一些时间来理解,我首先会看到他关于railscasts关于保护API的问题。一旦你完成了那个(并理解了这个概念),你也可以看到这个railscast。
希望这有帮助。