Repolode
heartcombo

heartcombo/devise

基于 Warden 的 Rails 灵活认证方案,按模块提供注册、登录、密码找回、账户锁定等功能。

Star
24,349
Fork
5,470
未关闭 Issue
243
最近提交
上个月

这是什么?

Devise 是一个面向 Ruby on Rails 的认证库,基于 Rack 认证框架 Warden 构建。它以 Rails engine 的形式提供控制器、视图和路由,可以快速搭建完整的登录系统。

功能按模块拆分,可以针对每个模型单独启用,只引入需要的部分。可用模块包括基于数据库的密码登录、OmniAuth 第三方登录、邮箱确认、密码找回、用户注册、记住登录的 Cookie、活动记录、会话超时、字段校验,以及多次登录失败后锁定账户等。同一应用中可以为 User、Admin 等多个模型分别提供登录能力。

Devise 默认使用 ActiveRecord,也支持 Mongoid。生成器会创建配置文件、模型和路由,控制器和视图中可直接使用 authenticate_user! 和 current_user 等辅助方法。

核心功能

  • 01按模型启用的模块化认证功能。
  • 02基于数据库的密码登录,并支持 HTTP Basic 认证。
  • 03集成 OmniAuth,支持第三方登录。
  • 04提供邮箱确认、密码找回和账户解锁流程。
  • 05支持多个用户模型同时登录。
  • 06控制器、视图和参数过滤均可自定义。

适用场景

  • 为新建或已有的 Rails 应用添加注册和登录功能。
  • 用不同模型分别管理管理员和普通用户登录。
  • 在邮箱密码账户之外增加第三方社交登录。
  • 在 Rails API 模式下使用 HTTP Basic 认证保护接口。

快速上手

  1. 1

    将 Devise 添加到 Rails 的 Gemfile 中

    bundle add devise
  2. 2

    运行 Devise 安装生成器

    rails generate devise:install
  3. 3

    生成带有 Devise 模块的用户模型

    rails generate devise MODEL
  4. 4

    运行数据库迁移

    rails db:migrate

使用前须知

  • 需要较好地理解 Rails,README 建议初学者先从零实现认证。
  • Devise 5 仅支持 Rails 7 及以上版本,较旧的 Rails 应用需要使用更早的版本。

收录于专题

标签

常见问题

devise 是什么?
基于 Warden 的 Rails 灵活认证方案,按模块提供注册、登录、密码找回、账户锁定等功能。 Devise 是一个面向 Ruby on Rails 的认证库,基于 Rack 认证框架 Warden 构建。它以 Rails engine 的形式提供控制器、视图和路由,可以快速搭建完整的登录系统。
devise 可以免费使用吗?用的什么许可证?
devise 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
devise 还在维护吗?
半年内有更新。devise 最近一次提交是在 2026年10月6日。
devise 适合用来做什么?
为新建或已有的 Rails 应用添加注册和登录功能。 用不同模型分别管理管理员和普通用户登录。 在邮箱密码账户之外增加第三方社交登录。 在 Rails API 模式下使用 HTTP Basic 认证保护接口。
devise 怎么安装和运行?
将 Devise 添加到 Rails 的 Gemfile 中: bundle add devise 运行 Devise 安装生成器: rails generate devise:install 生成带有 Devise 模块的用户模型: rails generate devise MODEL 运行数据库迁移: rails db:migrate
在哪里获取 devise?
源代码和安装说明在 GitHub 上:https://github.com/heartcombo/devise

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目