API Guard 项目教程
api_guardJWT authentication solution for Rails APIs项目地址:https://gitcode.com/gh_mirrors/ap/api_guard
1. 项目的目录结构及介绍
API Guard 是一个用于 Rails API 的 JWT 认证解决方案。以下是项目的目录结构及其主要文件的介绍:
api_guard/
├── app/
│ ├── controllers/
│ │ └── api_guard/
│ │ ├── authentication_controller.rb
│ │ ├── passwords_controller.rb
│ │ ├── registration_controller.rb
│ │ └── tokens_controller.rb
│ ├── models/
│ │ └── user.rb
│ └── views/
├── config/
│ ├── initializers/
│ │ └── api_guard.rb
│ └── routes.rb
├── db/
│ ├── migrate/
│ └── schema.rb
├── lib/
│ └── tasks/
├── spec/
│ ├── controllers/
│ ├── models/
│ └── requests/
├── Gemfile
├── Gemfile.lock
├── README.md
└── api_guard.gemspec
主要目录和文件介绍:
- app/: 包含应用程序的主要代码。
- controllers/: 包含 API Guard 的控制器,如
authentication_controller.rb
、passwords_controller.rb
等。 - models/: 包含用户模型
user.rb
。 - views/: 视图文件(通常在 API 项目中不使用)。
- controllers/: 包含 API Guard 的控制器,如
- config/: 包含项目的配置文件。
- initializers/: 包含 API Guard 的初始化配置文件
api_guard.rb
。 - routes.rb: 项目的路由配置文件。
- initializers/: 包含 API Guard 的初始化配置文件
- db/: 包含数据库相关的文件。
- migrate/: 数据库迁移文件。
- schema.rb: 数据库模式文件。
- lib/: 包含自定义库和任务。
- spec/: 包含测试代码。
- Gemfile: 项目的依赖管理文件。
- Gemfile.lock: 依赖的锁定文件。
- README.md: 项目的说明文档。
- api_guard.gemspec: 项目的 gemspec 文件。
2. 项目的启动文件介绍
API Guard 项目的启动文件主要是 config/routes.rb
和 config/initializers/api_guard.rb
。
config/routes.rb
该文件定义了项目的路由配置。API Guard 的路由配置通常如下:
Rails.application.routes.draw do
api_guard_routes for: 'users'
end
config/initializers/api_guard.rb
该文件包含了 API Guard 的初始化配置,定义了 JWT 的签名密钥、令牌有效期等配置项。
ApiGuard.setup do |config|
config.token_validity = 1.hour
config.refresh_token_validity = 1.week
config.token_signing_secret = 'your_secret_key'
end
3. 项目的配置文件介绍
API Guard 的配置文件主要位于 config/initializers/api_guard.rb
。以下是一些常见的配置项:
默认配置
ApiGuard.setup do |config|
config.token_validity = 1.hour
config.refresh_token_validity = 1.week
config.token_signing_secret = 'your_secret_key'
config.invalidate_tokens_on_password_change = true
config.token_blacklisting = true
end
配置项说明
- token_validity: 访问令牌的有效期,默认为 1 小时。
- refresh_token_validity: 刷新令牌的有效期,默认为 1 周。
- token_signing_secret: JWT 签名密钥。
- invalidate_tokens_on_password_change: 是否在密码更改时使所有令牌失效,默认为
true
。 - token_blacklisting: 是否启用令牌黑名单,默认为
true
。
通过这些配置项,可以灵活地调整 API Guard 的行为以满足项目的需求。
api_guardJWT authentication solution for Rails APIs项目地址:https://gitcode.com/gh_mirrors/ap/api_guard