gpt4 book ai didi

ruby-on-rails - Omniauth、Devise、Open ID、CanCan - 什么以及何时使用 Rails API 应用程序的解决方案

转载 作者:行者123 更新时间:2023-12-04 06:11:57 30 4
gpt4 key购买 nike

所以我正在开发一个 Rails 应用程序 - 主要提供 API,我想锁定一个很好的授权系统。我创建了渲染 HTML 的 Rails 应用程序,为此我使用了 Devise 和 CanCan。这次我想为我的客户提供 JSON。我基本上有以下要求:

  • 需要一个强大的授权系统
  • 用户应该能够使用现有应用程序登录,例如 facebook、twitter、linked in 和 google
  • 应该有完整的堆栈授权可用

  • 现在这是我编写的第一个提供 API 的应用程序,所以我开始研究,到目前为止,我发现了人们使用过的以下解决方案:
  • 我见过有人在 CanCan 上使用 Devise
  • 我见过人们谈论使用 Oauth2
    http://railscasts.com/episodes/353-oauth-with-doorkeeper?autoplay=true
  • 我听说...“使用门卫”
  • 我听说使用..."使用 omniauth"

  • 所以基本上我 1 天的研究基本上只是让我更加困惑。当我使用这些以及根据我的要求使用哪种组合时!我正在努力理解字母汤,有人能帮我理解这一点吗

    最佳答案

    Devise 是适用于所有类型 Rails 应用程序的身份验证引擎。 Devise 允许针对用户名/密码、 token 身份验证(适用于 API)和 oauth 提供程序(例如 Google、Facebook 等)进行身份验证。这显然允许您拒绝访问 API,除非用户通过您提供的服务之一登录。

    CanCan 是一个授权系统,它将在 Devise 之上工作,允许用户根据他们在系统中的角色访问系统的某些部分。 CanCan 有一个非常灵活的 DSL 提供 cancannot允许或拒绝访问 View 或 Controller 操作的方法。

    如果您想在 API 之上推出自己的 oauth 解决方案,Doorkeeper 是一个 oauth 提供商 gem。如果您希望您的应用程序以与 Google 或 FAcebook 相同的方式提供 oauth 端点供用户进行身份验证,那么这将是。从你上面说的情况来看,我认为情况并非如此。

    鉴于您上面提供的要求,我相信 Devise 和 CanCan 将是我会选择的路线。这将允许用户首先通过用户名/密码或某些 oauth 提供程序进行身份验证,然后允许 token 身份验证以访问您的 API。然后,您可以通过 CanCan 锁定对特定操作的访问。

    关于ruby-on-rails - Omniauth、Devise、Open ID、CanCan - 什么以及何时使用 Rails API 应用程序的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131079/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com