CJDJTP27H2CZOFMKYVGCLYTKIFCRL3AZXKULFDFJ2NP4V22C5JFAC BXEBSO25VUVBYVJZPCKN7QWXUXT3QVYUYSPBGVQ2DPEOECA37WYAC 46JE6BRG3IGSIHJF7GKISMVB3TPJ67PIBUKA2JE7KF4YWSCIMPHQC HBDTKI2BJX5JI3ALM5KQTDXFTI6HY2JZHEP4D6Y23WHY4ZUCX6LQC FUCFD4UVRUXDHG24MYEHF2E5E23BIFVKTRGLNBPBVKFLONVSMHTAC H6GGDVHWCRHNOSL6R3CPL35CYGH5CPUXESIMTVJG6WMQCNOQMCBAC HTYEGVBU6MODOOW4UPEGSHLH4CQFYCDSFVAF2MRQW2RCDP7ITNXQC WW3KRXX63EYWW4563QM3VSEN4PGCPR76KJQBYIKCKOCNMDG6JW4QC WVHXYKCVPKAFVMXBEMD3IHG54RKOIDSOCVNR3OIPEZQG36IGYJZQC 564OK4ZCPPAEBXUISDP5526O5OJIXKOPDEUBKWNKTT4KQ3TOJOCQC EVP2FSBHQUCAXQ6IIMBD6IS24ODKHP6HFWYCHIMYG6KOFRQG3RVQC TEB4R7OU65GZAGPNINWHOR4Q23OJYVUQK5RT75SV26W7JJEVT5DQC W2AVMCLON3ANLDK6LSDEYLOLMC3VYX267ESPG4SYWJUQ2QLNWDEQC MGRTVGLJX4D5YAJGKTVETEKYNLTQZRSV7EJSFWFTWQOTYXTCA2XAC 4MZ4VIR7FU3PQ3WKJI6TJIKYOIIBODFEPKLMQ32S4AKPZSDFO6AQC CMA5SKJ32PZJNZ2HUMESFZRXN4OYEHXDG2YONGED2336DBUY764AC BCXEUKX6RVE4UQE46ITSQY2NXYK3MJT7HHL7CJOM7T4OOOCADMIAC let mut random_bytes = [0u8; 32];rng().fill(&mut random_bytes);let code_verifier = base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(random_bytes);let mut hasher = Sha256::new();hasher.update(code_verifier.as_bytes());let code_challenge = base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(hasher.finalize());
let location = format!("https://{}/oauth/authorize?client_id={}&scope=read:accounts&redirect_uri={}&response_type=code&state={}",
let location = format!("https://{}/oauth/authorize?client_id={}&scope=read:accounts&redirect_uri={}&response_type=code&state={}&code_challenge_method=S256&code_challenge={}",
if cached_data.is_none_or(|x| x != domain) {log::warn!("Unknown state for mastodon redirect: {}", state);return HttpResponse::BadRequest().body("Incorrect");}
let code_verifier = match cached_data {None => {log::warn!("Unknown state for mastodon redirect: {}", state);return HttpResponse::BadRequest().body("Incorrect");}Some((cached_domain, code_verifier)) => {if cached_domain != domain {log::warn!("Unknown domain and state for mastodon redirect: {} domain {} != {}",state,domain,cached_domain);return HttpResponse::BadRequest().body("Incorrect");} else {code_verifier}}};