172 похожих чатов

Господа, а как в actix-web лучше делать авторизацию по JWT

токену?
Делал свою через самописный сервис, но потом нашёл вот это.

https://docs.rs/actix-web-httpauth/latest/actix_web_httpauth/middleware/struct.HttpAuthentication.html#method.bearer

С самописным какие-то проблемы на новых версиях из-за того что Response и HttpResponse плохо между собой конвертируются и кастомный респонс вернуть из сервиса не получается.

4 ответов

18 просмотров

делал самописный. Бирер и жвт это разные вещи

fn try_extract_user_model_from_jwt( req: &ServiceRequest, env_config: Arc<EnvConfig>, ) -> Option<UserModel> { use jsonwebtoken::{decode, DecodingKey, Validation, Algorithm}; let jwt_header = req .headers() .get(JWT_HEADER_NAME) .and_then(|h| h.to_str().ok()); if let Some(jwt) = jwt_header { if jwt.len() == 0 { return None; } let maybe_model = decode::<UserModelRaw>( jwt, &DecodingKey::from_secret(env_config.auth_api_secret_key.as_bytes()), &Validation::new(Algorithm::HS512), ) .map_err(|e| e.to_string()); return match maybe_model { Ok(token_data) => { Some(token_data.claims.into()) }, Err(e) => { error!("{}", e); None } } } return None; }

Αλεχ Zhukovsky
fn try_extract_user_model_from_jwt( req: &Serv...

Это получается валидатор самописный для мидлвары, которую я выше кинул? Спасибо, покопаю в эту сторону

ᚲᛁᚱᛁᛚᛚ ᚲᚨᚱᛒᚢᛋᚺᛖᚹ
Это получается валидатор самописный для мидлвары, ...

Ну я её использую в рамках бирера, если не получилось жвт достать то смотрю в токен

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
Карта сайта