mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-13 10:12:19 -06:00
refactor: remove unnecessary HashMap for passing code/state strings, formatter lifetime tweak
This commit is contained in:
@@ -93,23 +93,8 @@ impl OAuthProvider for GitHubProvider {
|
||||
Redirect::to(authorize_url.as_str()).into_response()
|
||||
}
|
||||
|
||||
async fn handle_callback(&self, query: &std::collections::HashMap<String, String>) -> Result<AuthUser, ErrorResponse> {
|
||||
if let Some(err) = query.get("error") {
|
||||
warn!(error = %err, desc = query.get("error_description").map(|s| s.as_str()), "OAuth callback contained an error");
|
||||
return Err(ErrorResponse::bad_request(
|
||||
err.clone(),
|
||||
query.get("error_description").cloned(),
|
||||
));
|
||||
}
|
||||
let code = query
|
||||
.get("code")
|
||||
.cloned()
|
||||
.ok_or_else(|| ErrorResponse::bad_request("invalid_request", Some("missing code".into())))?;
|
||||
let state = query
|
||||
.get("state")
|
||||
.cloned()
|
||||
.ok_or_else(|| ErrorResponse::bad_request("invalid_request", Some("missing state".into())))?;
|
||||
let Some(verifier) = self.pkce.take_verifier(&state) else {
|
||||
async fn handle_callback(&self, code: &str, state: &str) -> Result<AuthUser, ErrorResponse> {
|
||||
let Some(verifier) = self.pkce.take_verifier(state) else {
|
||||
warn!(%state, "Missing or expired PKCE verifier for state parameter");
|
||||
return Err(ErrorResponse::bad_request(
|
||||
"invalid_request",
|
||||
@@ -119,7 +104,7 @@ impl OAuthProvider for GitHubProvider {
|
||||
|
||||
let token = self
|
||||
.client
|
||||
.exchange_code(AuthorizationCode::new(code))
|
||||
.exchange_code(AuthorizationCode::new(code.to_string()))
|
||||
.set_pkce_verifier(PkceCodeVerifier::new(verifier))
|
||||
.request_async(&self.http)
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user