Bar*_*red 1 authentication ruby-on-rails multiple-domains devise
我必须将我正在开发的 Web 应用程序与外部 Web 应用程序集成才能使用它们的服务。不幸的是,这是我的第一部作品,我有点困惑。
他们要求我提供带有登录令牌的验证 URL,以帮助他们识别哪些用户来自我的网站。
是否可以通过设计使用令牌身份验证来做到这一点?我可以生成令牌,将其存储在客户端浏览器中,然后使用它在外部域中对它们进行身份验证吗?
我希望这个答案不会太明显。听起来您才刚刚开始,需要一些指导。
根据我的阅读,我得到以下要求:
我会从广义上讲这个,让你寻找一个具体的解决方案。基本上,您需要一种生成安全身份验证令牌的方法。Devise 应该与authlogic和其他几个一起这样做。您不想做的是尝试推出自己的身份验证令牌生成。绝对使用那里的宝石为您做这件事。
生成令牌后,这里是基本事务的概述,其中身份验证令牌只是作为参数传递给控制器操作(https 是您在此事务中的朋友,仅供参考)。

如何将令牌传递给第 3 方应用程序,以便它可以使用它来发出 API 请求,这取决于您希望应用程序如何工作。但是,一种常见的做法是使用遵循以下模式的方法:
如果可能的话,如果您实际上可以使用 OAuth 提供程序或其他一些已经存在的机制来充当第 3 方身份验证意味着您的应用程序和第 3 方应用程序都信任,那就太好了。要沿着这条路线走下去,请查看此 Railscast:http: //railscasts.com/episodes/235-omniauth-part-1
...但当然,由于您已经有一个现有的应用程序,尤其是在企业应用程序中,能够将 oauth 提供程序集成到您的应用程序中的情况并不常见。但无论哪种方式,只要有可能,将身份验证机制卸载给另一方几乎总是可取的。这主要是因为您希望安全专家担心并更新他们的身份验证服务,并将应用程序代码留给您。
另一方面,即使您不使用 OAuth 提供程序来解决这个问题,上面提到的 railscast 也会为您提供构建自己的 API/回调机制时遵循的想法和模式。您最终会得到一系列 API 调用/操作。当然,路由(这些 API 调用的 URL)可以是任何东西。但作为一个例子,它们可能看起来像这样:
/api/auth/:id {:controller=>"api", :action=>"auth"}
Run Code Online (Sandbox Code Playgroud)
...作为参数,标识第 3 方应用程序的唯一密钥,以及第 3 方应用程序的密钥(基本上是密码),以及成功和失败的回调 url,并以成功/失败进行响应,以及成功后的有效身份验证令牌。
/api/some/restful/resource/call # example API call for some RESTful resource you make available
... etc. ...
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,即使您不使用 3rd 方身份验证提供程序,遵循我发布的 railscast(以及后续剧集)也会让您了解其他强大的 API 使用的实现模式。设置一个演示应用程序来进行 facebook 身份验证也非常有指导意义,可能只需要几个小时,就可以掌握工作流程。
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |