1 unstable release
0.2.0 | Apr 1, 2024 |
---|---|
0.1.0 |
|
#579 in Authentication
51 downloads per month
19KB
193 lines
Rust EVE OAuth2
Black Rose's implementation of an OAuth2 method for authenticating with EVE Online's SSO for use with your preferred Rust web framework.
Initial Setup
- You will first need to create an application at https://developers.eveonline.com/.
- Set your callback URL in your application to the same one you will use in your application else you will encounter errors.
- localhost:8000/callback
- Select the scopes your application intends on using, add more later if needed.
- Create a .env file with your client id & client secret that you will use in your login & callback API routes.
Implementation
You will need the following API routes:
- Login GET route to send the user to CCP's login page (
localhost:8000/login
)- Call the
create_login_url
function to get the login link for the page - Store the state code returned from
create_login_url
in a session
- Call the
- Redirect GET route with code & state paramters (
localhost:8000/callback?code=...&state=...
)- Validate state from session with the state code from the calback for additional security
- Call the
get_access_token
function which uses the application client id & client secret & the code returned in the redirect to retrieve an access token - Call the
validate_access_token
function to validate the token & to access the data within the token you can use in your application to verify the user
See the axum example to see the implementation above in action.
To test out the axum example:
- Copy .env.example to .env and fill out the variables which you can get from https://developers.eveonline.com/
- Run
cargo run --example axum
- Login at
http://localhost:8000/login
- On successful login you'll see your character id & name
Dependencies
~10–24MB
~357K SLoC