#oauth2 #eve-online #web-framework #eve-sso #black-rose #eve-esi

eve_oauth2

Black Rose为EVE Online SSO提供的OAuth2实现

1个不稳定版本

0.2.0 2024年4月1日
0.1.0 2023年7月17日

#837身份验证

Download history 10/week @ 2024-04-07

每月51次下载

MIT许可证

19KB
193

Rust EVE OAuth2

Black Rose为其Rust Web框架实现OAuth2身份验证方法,用于与EVE Online SSO进行认证。

初始设置

  1. 您首先需要在https://developers.eveonline.com/创建一个应用程序。
  2. 在您的应用程序中将回调URL设置为与您在应用程序中使用相同的URL,否则您将遇到错误。
    • localhost:8000/callback
  3. 选择您的应用程序打算使用的权限范围,如果需要可以稍后添加更多。
  4. 创建一个包含您的客户端ID和客户端密钥的.env文件,这些密钥将在您的登录和回调API路由中使用。

实现

您需要以下API路由

  1. 登录GET路由,将用户发送到CCP的登录页面(localhost:8000/login
    • 调用create_login_url函数以获取页面登录链接
    • create_login_url返回的状态代码存储在会话中
  2. 带有代码和状态参数的重定向GET路由(localhost:8000/callback?code=...&state=...
    • 使用回调中的状态代码与会话中的状态进行验证,以增加额外的安全性
    • 调用get_access_token函数,该函数使用应用程序客户端ID、客户端密钥以及重定向中返回的代码来检索访问令牌
    • 调用validate_access_token函数以验证令牌,并使用您在应用程序中可以使用的令牌中的数据来验证用户

查看axum示例,以查看上述实现的实际操作。

要测试axum示例

  1. 将.env.example复制到.env并填写您可以从https://developers.eveonline.com/获取的变量
  2. 运行cargo run --example axum
  3. 登录地址:https://127.0.0.1:8000/login
  4. 登录成功后,您将看到您的角色ID和名称

依赖项

~9-23MB
~366K SLoC