我是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
- 葡萄在轨道上
希望对你有帮助