Devise-Passwordless 项目教程
1. 项目的目录结构及介绍
devise-passwordless/
├── app/
│ ├── controllers/
│ │ └── devise/
│ │ └── passwordless/
│ │ └── sessions_controller.rb
│ └── models/
│ └── user.rb
├── bin/
│ └── rails
├── config/
│ ├── routes.rb
│ └── initializers/
│ └── devise.rb
├── db/
│ └── migrate/
├── lib/
│ └── devise/
│ └── passwordless/
│ ├── strategy.rb
│ └── version.rb
├── spec/
│ └── ...
├── Gemfile
├── Gemfile.lock
├── README.md
├── Rakefile
├── CHANGELOG.md
├── LICENSE.txt
└── devise-passwordless.gemspec
目录结构介绍
- app/: 包含应用程序的核心代码,包括控制器和模型。
- controllers/devise/passwordless/: 包含用于处理密码无登录的控制器。
- models/: 包含用户模型文件。
- bin/: 包含可执行文件,如
rails
命令。 - config/: 包含应用程序的配置文件。
- routes.rb: 定义应用程序的路由。
- initializers/devise.rb: Devise 的初始化配置文件。
- db/: 包含数据库迁移文件。
- lib/: 包含自定义库代码。
- devise/passwordless/: 包含密码无登录策略的实现。
- spec/: 包含测试代码。
- Gemfile: 定义项目的依赖关系。
- Gemfile.lock: 锁定依赖版本。
- README.md: 项目介绍和使用说明。
- Rakefile: 定义 Rake 任务。
- CHANGELOG.md: 记录项目的变更历史。
- LICENSE.txt: 项目的许可证文件。
- devise-passwordless.gemspec: 项目的 gemspec 文件。
2. 项目的启动文件介绍
bin/rails
bin/rails
是 Rails 应用程序的启动文件。它用于启动 Rails 服务器、运行测试、生成代码等。通过运行 bin/rails server
可以启动开发服务器。
3. 项目的配置文件介绍
config/routes.rb
config/routes.rb
文件定义了应用程序的路由。对于 devise-passwordless
,你需要在路由中指定使用密码无登录的控制器:
Rails.application.routes.draw do
devise_for :users, controllers: { sessions: "devise/passwordless/sessions" }
end
config/initializers/devise.rb
config/initializers/devise.rb
是 Devise 的初始化配置文件。你可以在这里配置 Devise 的各种选项,如邮件发送设置、加密方式等。
app/models/user.rb
app/models/user.rb
是用户模型的定义文件。你需要在这里启用 magic_link_authenticatable
策略:
class User < ApplicationRecord
devise :magic_link_authenticatable, :registerable, :rememberable
end
lib/devise/passwordless/strategy.rb
lib/devise/passwordless/strategy.rb
是密码无登录策略的实现文件。它定义了如何生成和验证魔法链接。
Gemfile
Gemfile
文件定义了项目的依赖关系。你需要添加 devise-passwordless
依赖:
gem "devise-passwordless"
然后运行 bundle install
来安装依赖。
devise-passwordless.gemspec
devise-passwordless.gemspec
是项目的 gemspec 文件,定义了 gem 的元数据和依赖关系。
通过以上配置和目录结构,你可以成功集成和使用 devise-passwordless
进行密码无登录。