Size: a a a

Django [ru] #STAY HOME

2021 February 21

AD

Arthur Deder in Django [ru] #STAY HOME
Есть кейс.
Oauth организован на стороне мобильных приложений (не через webview, а через их sdk ).
Вся логика происходит у них, на выходе мне летит только токен.
Oauth: facebook, google, vk, apple
Есть ли у нас готовое решение которое позволит валидировать полученные токены, разобрать, создать пользователей и вернуть refresh и access токены simple jwt?
источник

МВ

Михаил Влазнев... in Django [ru] #STAY HOME
Присоединяюсь к вопросу. Хотя меня больше интересует, как вообще валидировать полученный токен, не обязательно через готовое решение
источник

AK

Aknur Kassym in Django [ru] #STAY HOME
всем доброго времени суток

Я работаю с JWT, и возник вопрос: как с JWT можно понять какой юзер этот запрос отправил? До этого хранил юзерАйди в localStorage и просто передавал айди как часть урл, но понял, что любой другой может сделать покупку вместо тебя.
источник

AL

Artyom Lazovikov in Django [ru] #STAY HOME
Ох уж этот JWT....
источник

G

Gas in Django [ru] #STAY HOME
Михаил Влазнев
Присоединяюсь к вопросу. Хотя меня больше интересует, как вообще валидировать полученный токен, не обязательно через готовое решение
на серверах выдавших токен есть адрес .well-known/что-то. там можно прочитать публичный ключ для валидпции токена
источник

b

bbclub in Django [ru] #STAY HOME
Aknur Kassym
всем доброго времени суток

Я работаю с JWT, и возник вопрос: как с JWT можно понять какой юзер этот запрос отправил? До этого хранил юзерАйди в localStorage и просто передавал айди как часть урл, но понял, что любой другой может сделать покупку вместо тебя.
Ну сделает покупку и что
источник

G

Gas in Django [ru] #STAY HOME
Aknur Kassym
всем доброго времени суток

Я работаю с JWT, и возник вопрос: как с JWT можно понять какой юзер этот запрос отправил? До этого хранил юзерАйди в localStorage и просто передавал айди как часть урл, но понял, что любой другой может сделать покупку вместо тебя.
вот пример https://accounts.google.com/.well-known/openid-configuration
искомый параметр jwks_uri

а здесь валидация по нему
https://pyjwt.readthedocs.io/en/latest/usage.html#retrieve-rsa-signing-keys-from-a-jwks-endpoint
источник

МВ

Михаил Влазнев... in Django [ru] #STAY HOME
Aknur Kassym
всем доброго времени суток

Я работаю с JWT, и возник вопрос: как с JWT можно понять какой юзер этот запрос отправил? До этого хранил юзерАйди в localStorage и просто передавал айди как часть урл, но понял, что любой другой может сделать покупку вместо тебя.
Ввиду этого JWT можно использовать для мобильных приложений, но не рекомендуется использовать в браузере.
источник

AC

Andrew Chernysh in Django [ru] #STAY HOME
Aknur Kassym
всем доброго времени суток

Я работаю с JWT, и возник вопрос: как с JWT можно понять какой юзер этот запрос отправил? До этого хранил юзерАйди в localStorage и просто передавал айди как часть урл, но понял, что любой другой может сделать покупку вместо тебя.
Все очень просто. В джвт когда формируется, туда можно передать любые данные. Они закодируются и их можно будет при авторизации доставать из токена.
источник

AC

Andrew Chernysh in Django [ru] #STAY HOME
Михаил Влазнев
Ввиду этого JWT можно использовать для мобильных приложений, но не рекомендуется использовать в браузере.
первый раз слышу о том, что ДЖВ не рекомендуется использовать в браузере
источник

M

Mark in Django [ru] #STAY HOME
Aknur Kassym
всем доброго времени суток

Я работаю с JWT, и возник вопрос: как с JWT можно понять какой юзер этот запрос отправил? До этого хранил юзерАйди в localStorage и просто передавал айди как часть урл, но понял, что любой другой может сделать покупку вместо тебя.
Использовать сессии с присваиванием пользователю uuid в cookies
источник

M

Mark in Django [ru] #STAY HOME
+ соблюдать CSRF гигиену
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Aknur Kassym
всем доброго времени суток

Я работаю с JWT, и возник вопрос: как с JWT можно понять какой юзер этот запрос отправил? До этого хранил юзерАйди в localStorage и просто передавал айди как часть урл, но понял, что любой другой может сделать покупку вместо тебя.
так у тебя в jwt закодирован id юзера
источник

DT

Dan Tyan in Django [ru] #STAY HOME
id или email
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ты собственно по нему определяешь кто пришел
источник

G

Gas in Django [ru] #STAY HOME
кстати, что используете для openid connect?
источник

EV

Evgeny Vlasov in Django [ru] #STAY HOME
Привет! Использую allauth для аутентификации через соц сети и столкнулся с проблемой, что не все провайдеры отдают url на профиль. Не подскажите как исправить, на примере того же Facebook? В extra только на картинку ссылка падает

SOCIALACCOUNT_PROVIDERS = {
   'facebook': {
       'METHOD': 'oauth2',
       'SCOPE': ['email', 'public_profile'],
       'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
       'INIT_PARAMS': {'cookie': True},
       'FIELDS': [
           'id',
           'first_name',
           'last_name',
           'middle_name',
           'name',
           'name_format',
           'picture',
           'short_name',
       ],
       'EXCHANGE_TOKEN': True,
       'VERIFIED_EMAIL': False,
       'VERSION': 'v7.0',
   },

Это натсройка провайдера если что, в доках про url что-то ничего не написано, fb вообще ее отдает?
источник

L

Lannoy in Django [ru] #STAY HOME
Всем привет, к сожалению забыл, и пока не могу найти, как мне сделать такой queryset с фильтром чтобы определенный объект был в поле, к примеру конкретно у меня надо чтобы пользователь был в поле users, users это если что связь многие ко многим queryset = Table.objects.filter(?)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Lannoy
Всем привет, к сожалению забыл, и пока не могу найти, как мне сделать такой queryset с фильтром чтобы определенный объект был в поле, к примеру конкретно у меня надо чтобы пользователь был в поле users, users это если что связь многие ко многим queryset = Table.objects.filter(?)
Table.objects.filter(user=request.user)?
источник

L

Lannoy in Django [ru] #STAY HOME
Nikolay Cherniy
Table.objects.filter(user=request.user)?
У меня users
источник