【问题标题】:Is there like a Laravel Passport in rails?Rails 中有类似 Laravel Passport 的东西吗?
【发布时间】:2020-11-27 15:39:19
【问题描述】:

我只是对 rails 中的 api 安全感到好奇。我只是想问一下rails中是否有laravel护照?

对于不了解Laravel Passport的人,我在下面做一个简单的说明:

API 通常使用令牌对用户进行身份验证,并且不维护请求之间的会话状态。 Laravel 使用 Laravel Passport 使 API 身份验证变得轻而易举,它在几分钟内为您的 Laravel 应用程序提供了完整的 OAuth2 服务器实现。 Passport 建立在由 Andy Millington 和 Simon Hamp 维护的 League OAuth2 服务器之上。


这是我的 Rails 登录代码,session[:user_id] 是否足以验证和检查经过身份验证的用户?

user = User.find_by(email: params[:email])

if user && user.authenticate(params[:password])
  session[:user_id] = user.id
  render json: { code: 200, data: user }, status: :ok
end

【问题讨论】:

    标签: ruby-on-rails ruby laravel


    【解决方案1】:

    Rails 中用于身份验证的事实上的 gem 是 devise。如果您正在构建 Web 应用程序,那么 devise 可以满足您的所有身份验证需求,包括对 OmniAuth 的开箱即用支持。

    但是,如果您要构建 API,则必须使用基于令牌的身份验证系统。基于设计 gem 本身的基于令牌的身份验证的比较流行的 gem 之一是 devise_token_auth

    事实上,设置混合方法,让您的网页使用devise,您的API 使用devise_token_auth,设置起来非常简单,而且效果很好。我已经创建了一个示例项目来执行此操作 here

    【讨论】:

    • 感谢您的回复,我先试试,先生,然后告诉您反馈。
    猜你喜欢
    • 1970-01-01
    • 2018-01-12
    • 2020-04-10
    • 1970-01-01
    • 2021-08-04
    • 2012-05-31
    • 2012-11-27
    • 2017-11-21
    • 2012-08-03
    相关资源
    最近更新 更多