1个不稳定版本
0.2.0 | 2024年4月1日 |
---|---|
0.1.0 |
|
#837 在 身份验证
每月51次下载
19KB
193 行
Rust EVE OAuth2
Black Rose为其Rust Web框架实现OAuth2身份验证方法,用于与EVE Online SSO进行认证。
初始设置
- 您首先需要在https://developers.eveonline.com/创建一个应用程序。
- 在您的应用程序中将回调URL设置为与您在应用程序中使用相同的URL,否则您将遇到错误。
- localhost:8000/callback
- 选择您的应用程序打算使用的权限范围,如果需要可以稍后添加更多。
- 创建一个包含您的客户端ID和客户端密钥的.env文件,这些密钥将在您的登录和回调API路由中使用。
实现
您需要以下API路由
- 登录GET路由,将用户发送到CCP的登录页面(
localhost:8000/login
)- 调用
create_login_url
函数以获取页面登录链接 - 将
create_login_url
返回的状态代码存储在会话中
- 调用
- 带有代码和状态参数的重定向GET路由(
localhost:8000/callback?code=...&state=...
)- 使用回调中的状态代码与会话中的状态进行验证,以增加额外的安全性
- 调用
get_access_token
函数,该函数使用应用程序客户端ID、客户端密钥以及重定向中返回的代码来检索访问令牌 - 调用
validate_access_token
函数以验证令牌,并使用您在应用程序中可以使用的令牌中的数据来验证用户
查看axum示例,以查看上述实现的实际操作。
要测试axum示例
- 将.env.example复制到.env并填写您可以从https://developers.eveonline.com/获取的变量
- 运行
cargo run --example axum
- 登录地址:
https://127.0.0.1:8000/login
- 登录成功后,您将看到您的角色ID和名称
依赖项
~9-23MB
~366K SLoC