Implemented userinfo endpoint and finalized OAuth2.0 flow
This commit is contained in:
12
src/util.rs
12
src/util.rs
@ -6,6 +6,18 @@ use log::{LevelFilter, error, info};
|
||||
use simplelog::{ColorChoice, CombinedLogger, TermLogger, TerminalMode, WriteLogger};
|
||||
use std::fs::File;
|
||||
use std::sync::Arc;
|
||||
use serde::de::DeserializeOwned;
|
||||
use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine as _};
|
||||
|
||||
pub fn decode_payload_unchecked<T: DeserializeOwned>(token: &str) -> Result<T, Box<dyn std::error::Error>> {
|
||||
let mut parts = token.split('.');
|
||||
let _header = parts.next().ok_or("missing header")?;
|
||||
let payload_b64 = parts.next().ok_or("missing payload")?;
|
||||
// signature is parts.next() but we ignore it here
|
||||
let payload = URL_SAFE_NO_PAD.decode(payload_b64.as_bytes())?;
|
||||
let claims = serde_json::from_slice::<T>(&payload)?;
|
||||
Ok(claims)
|
||||
}
|
||||
|
||||
pub fn initialize_logging(config: &Config) {
|
||||
CombinedLogger::init(vec![
|
||||
|
||||
Reference in New Issue
Block a user