aboutsummaryrefslogtreecommitdiffstats
path: root/crates/api-auth/src/discord
diff options
context:
space:
mode:
authorrtkay123 <dev@kanjala.com>2026-04-04 12:24:59 +0200
committerrtkay123 <dev@kanjala.com>2026-04-04 12:24:59 +0200
commite86366c6d68b9d3d2af4ac4afb5cf7d5a8400dde (patch)
tree6632795c61426f26ae3b5cdd1d2da7d2212b7d0c /crates/api-auth/src/discord
parent19c25138f88acf19c9a959a58de4f58e54026ebc (diff)
downloadsellershut-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.rs18
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!()
}
}