Doorkeeper OpenID Connect 项目教程
1. 项目的目录结构及介绍
Doorkeeper OpenID Connect 项目的目录结构如下:
doorkeeper-openid_connect/
├── app
│ ├── controllers
│ │ └── doorkeeper
│ │ └── openid_connect
│ │ └── discovery_controller.rb
│ ├── models
│ │ └── doorkeeper
│ │ └── openid_connect
│ │ └── claim.rb
│ └── views
│ └── doorkeeper
│ └── openid_connect
│ └── discovery
│ └── .html.erb
├── config
│ ├── initializers
│ │ └── doorkeeper_openid_connect.rb
│ └── routes.rb
├── db
│ └── migrate
│ └── xxxxxxxx_create_doorkeeper_openid_connect_tables.rb
├── lib
│ └── doorkeeper
│ └── openid_connect
│ ├── version.rb
│ └── ...
├── spec
│ └── ...
├── Gemfile
├── README.md
└── ...
目录结构介绍
app/
: 包含应用程序的控制器、模型和视图。controllers/
: 控制器文件,如discovery_controller.rb
。models/
: 模型文件,如claim.rb
。views/
: 视图文件,如discovery
目录下的.html.erb
文件。
config/
: 包含配置文件和路由文件。initializers/
: 初始化文件,如doorkeeper_openid_connect.rb
。routes.rb
: 路由配置文件。
db/
: 数据库迁移文件。migrate/
: 迁移文件,如xxxxxxxx_create_doorkeeper_openid_connect_tables.rb
。
lib/
: 库文件,包含版本信息和其他辅助文件。doorkeeper/openid_connect/
: 具体实现文件,如version.rb
。
spec/
: 测试文件。Gemfile
: 依赖管理文件。README.md
: 项目说明文件。
2. 项目的启动文件介绍
Doorkeeper OpenID Connect 项目的启动文件主要位于 config/initializers/
目录下,其中最重要的是 doorkeeper_openid_connect.rb
文件。
doorkeeper_openid_connect.rb
该文件用于配置 Doorkeeper OpenID Connect 扩展。以下是一个示例配置:
Doorkeeper::OpenidConnect.configure do
# 配置发现 URL 选项
discovery_url_options do |request|
{
authorization: { host: 'host.example.com' },
jwks: { protocol: request.ssl? ? :https : :http }
}
end
# 配置作用域
scopes do
openid
end
# 其他配置选项...
end
3. 项目的配置文件介绍
Doorkeeper OpenID Connect 项目的配置文件主要位于 config/
目录下,包括 initializers/doorkeeper_openid_connect.rb
和 routes.rb
。
initializers/doorkeeper_openid_connect.rb
该文件用于配置 Doorkeeper OpenID Connect 扩展的各项参数,如发现 URL 选项、作用域等。
routes.rb
该文件用于配置应用程序的路由。以下是一个示例路由配置:
Rails.application.routes.draw do
use_doorkeeper do
controllers tokens: 'doorkeeper/tokens',
authorizations: 'doorkeeper/authorizations',
applications: 'doorkeeper/applications',
authorized_applications: 'doorkeeper/authorized_applications',
token_info: 'doorkeeper/token_info'
end
# 其他路由配置...
end
通过以上配置,可以确保 Doorkeeper OpenID Connect 扩展正确集成到应用程序中。