для проверки грантов прям на хэндлерах процедурным макросом (аля #[has_role(“admin”)]) ?
Какой-то готовой абстракции по экстракту деталей юзера не нашел для этого 🤔
Я хотел сделать в какой-то момент, но руки не дошли Я бы, кстати, делал более универсальную систему + интеграцию с actix-web, чтобы потом для другого фреймворка второй раз не переделывать
Я не до конца допер, речь идет о jwt и проверке данных оттуда?
Типа, плюс способ удобно писать правила вроде «админ может всё, что может обычный человек»
И по хорошему не обязательно только jwt, экстракторы кастомные например через реализацию трейта
Ну это надо думать как хорошо делать, да Чтобы это при этом незаметно интегрировалось с актиксом
Под актикс в голове вроде сложилось примерное решение, нужно подумать на счёт разделения для интеграции с другими фреймворками 🤔 Ну и начать бы конечно это все делать)
я вот прям щас это делаю)
оу, я тоже уже накидал. хотел паблишить скоро) Мб и кривовато, но вроде работает)
а, ну ты прям макросом? Я прост решил что макрос не нужзно и достаточно сделатЬ App::new() .authorized_route( API_PREFIX, web::get().to(handlers::get_about), env_config.clone(), my_permission_list )
ага, с макросом как опционально. Можно еще ручками прописывать тож На самом деле очень простенькое решение
там просто можно будет засунуть мое решение поверх того же actix-web-httpauth - если кто-то уже из бирер токена например получает гранты юзера
ну вот это мой случай. Я сделал аус через httpauth. Хочу опциональную мидлварю для пермишнов, а эта хрень мне не дается
Написал свое решение под это дело Запаблишил крейт actix-web-grants, ридми и доку еще доработать нужно бы… Поэтому чтоб понять, что да как, наверное лучше в доку и эксамплы на гите глянуть. Есть пример интеграции с actix-web-httpauth. Можно и через макрос, и через актиксовый гуард, и вручную прям в сервисах чекать гранты. Опыта с актиксом (да и растом в целом) маловато, поэтому рад буду если кто глянет, оставит какие-то комментарии/замечания.
Обсуждают сегодня