oAuth2 在 DeIse 的帮助下使用 Doorkeeper 在 Ruby on Rails 中登录 Web 应用程



我是Ruby On Rails中api开发的新手。在我设计的 rails 应用程序中进行身份验证,我还想在 apis 上使用门卫进行 OAuth2 登录。我不知道如何实现 API 以及如何为此使用门卫。任何人都可以用我需要遵循的步骤来解释它来实现这一点吗?

要实现 API,我个人喜欢使用葡萄,通过遵循自述文件,您将立即启动并运行:)

要将葡萄与门卫集成,您可以使用wine_bouncer或葡萄门卫。

现在根据谁使用您的 api,门卫附带 4 个授权授权,我强烈建议您阅读不同的授权类型及其用法,您也可以阅读这篇 oauth2 简化文章。

要使门卫与设计一起玩,您需要修改您的门卫初始值设定项,如下所示:

resource_owner_authenticator块通常在执行授权或隐式授权请求时调用:

resource_owner_authenticator do |routes|
  # Put your resource owner authentication logic here.
  # If you want to use named routes from your app you need
  # to call them on routes object eg.
  # routes.new_user_session_path
  current_user || warden.authenticate!(:scope => :user)
end

您可以在门卫维基上查看示例应用程序。

密码授予改为使用resource_owner_from_credentials块,根据wiki,您可以按如下方式配置它:

resource_owner_from_credentials do |routes|
  request.params[:user] = {:email => request.params[:username], :password => request.params[:password]}
  request.env["devise.allow_params_authentication"] = true
  request.env["warden"].authenticate!(:scope => :user)
end

一些可能对您有所帮助的资源:

  • 轨道投射
  • 使用 Rails 构建 REST API
  • 幸存的 API*在 Rails 应用程序中构建 API
  • 葡萄在轨道上

希望对你有帮助

最新更新