profcomff / auth-lib Goto Github PK
View Code? Open in Web Editor NEWБиблиотека функций авторизации для микросервисов Твой ФФ!
Home Page: https://pypi.org/project/auth-lib-profcomff/
License: BSD 3-Clause "New" or "Revised" License
Библиотека функций авторизации для микросервисов Твой ФФ!
Home Page: https://pypi.org/project/auth-lib-profcomff/
License: BSD 3-Clause "New" or "Revised" License
Issue open by Roman Dyakov via telegram message.
Сейчас нет возможности проверить наличие пользователя по id штатными средствами. Заодно этой же функцией можно получать доп. инфу
В этих двух строках ошибка не рейзится, из-за чего следующие 2 строки падают с ошибкой
https://github.com/profcomff/auth-lib/blob/main/auth_lib/fastapi.py#L81-L82
Как повторить: подключиться к тестовому API и сделать запрос к продовому с настройками Allow none, No autofail
File \"/usr/local/lib/python3.11/site-packages/auth_lib/fastapi.py\", line 84, in __call__
[scope[\"name\"].lower() for scope in user_session[\"session_scopes\"]]
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
KeyError: 'session_scopes'
Пример:
В ручке зависимость требует скоуп
user: dict[str, Any] = Depends(UnionAuth(['print.qr_task.get']))
В тесте мокаем без скоупов
@pytest.mark.authenticated()
def test_post_list_duplicates(users, client): ...
Тест проходит успешно, не кидая ошибку 401
Issue open by Roman Dyakov via telegram message.
Assign changed from No assigned to @grigoriev-semyon by Roman Dyakov.
Если ты в 99% случаев пользуешься скоупами в виде листа строк, то стоит эту логику вынести в аутх-либ
Originally posted by @dyakovri in profcomff/userdata-api#2 (comment)
Сейчас они отстают от состояния и auth-api, и от состояния auth_lib.fastapi
В рамках этого же тикета сделать auth_lib.fastapi.call
оберткой над auth_lib.method.check_token
Можно тут же без зазрения совести удалить aiomethods
Issue open by Roman Dyakov via telegram message.
Assign changed from No assigned to @grigoriev-semyon by Roman Dyakov.
Issue open by Roman Dyakov via telegram message.
См переписку в телеге для подробностей
Issue open by Roman Dyakov via telegram message.
Assign changed from No assigned to @grigoriev-semyon by Roman Dyakov.
Мне вообще кажется, что их все запрашивать при каждом запросе – лишняя трата байтов. Давай в будущем добавим список в какой-нибудь Lazy Loading и будем запрашивать по умолчанию только основную информацию по умолчанию
Originally posted by @dyakovri in #29 (comment)
Issue open by Roman Dyakov via telegram message.
Issue open by Roman Dyakov via Issue Telegram Bot
Assign changed from No assigned to grigoriev-semyon by Roman Dyakov via Issue Telegram Bot
Мне кажется, сюда можно добавить кэш минут на 10-15. И настройки этого кэша в настройках класса
Наверное, не в этом ПРе, но тикет создать и запланировать можно
Originally posted by @dyakovri in #29 (comment)
Issue open by Roman Dyakov via Issue Telegram Bot
Для тестирования сервисов с использованием библиотеки авторизации приходится писать отдельный клиент и мокать поведение сущностей библиотеки. Написать дополнительный модуль testutils, в котором будут готовые моки для использования в сервисах
Assign changed from No assigned to grigoriev-semyon by Roman Dyakov via Issue Telegram Bot
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.