diff options
| author | rtkay123 <dev@kanjala.com> | 2026-04-04 12:24:59 +0200 |
|---|---|---|
| committer | rtkay123 <dev@kanjala.com> | 2026-04-04 12:24:59 +0200 |
| commit | e86366c6d68b9d3d2af4ac4afb5cf7d5a8400dde (patch) | |
| tree | 6632795c61426f26ae3b5cdd1d2da7d2212b7d0c /crates/api-auth/src/discord | |
| parent | 19c25138f88acf19c9a959a58de4f58e54026ebc (diff) | |
| download | sellershut-e86366c6d68b9d3d2af4ac4afb5cf7d5a8400dde.tar.bz2 sellershut-e86366c6d68b9d3d2af4ac4afb5cf7d5a8400dde.zip | |
feat(auth): create session
Diffstat (limited to 'crates/api-auth/src/discord')
| -rw-r--r-- | crates/api-auth/src/discord/mod.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/crates/api-auth/src/discord/mod.rs b/crates/api-auth/src/discord/mod.rs index a39722d..29b9bc2 100644 --- a/crates/api-auth/src/discord/mod.rs +++ b/crates/api-auth/src/discord/mod.rs @@ -1,8 +1,10 @@ use api_core::models::user::User; +use async_session::Session; use async_trait::async_trait; +use oauth2::{CsrfToken, Scope}; use sqlx::PgPool; -use crate::{BasicClient, OauthDriver, error::AuthError}; +use crate::{BasicClient, CSRF_TOKEN, OauthDriver, error::AuthError}; #[derive(Clone, Debug)] pub struct AuthServiceDiscord { @@ -24,7 +26,19 @@ impl OauthDriver for AuthServiceDiscord { async fn get_user(&self) -> Result<User, AuthError> { todo!() } - async fn create_session(&self, _user: &User) { + async fn create_oauth_session(&self)->Result<String,AuthError> { + let (auth_url, csrf_token) = self + .client + .authorize_url(CsrfToken::new_random) + .add_scope(Scope::new("identify".to_string())) + .url(); + + let mut session = Session::new(); + session.insert(CSRF_TOKEN, &csrf_token).unwrap(); + + Ok(String::default()) + } + async fn save_session(&self, user: &User)->Result<(), AuthError>{ todo!() } } |
