@symfony_php

Страница 850 из 1418
Alexandr
13.04.2018
09:33:26
Вы что тут делаете? Телеграм заблокирован же!
все ок) https://xakep.ru/2016/01/28/tor-and-vpn-is-ok-yet/

Konstantin
13.04.2018
09:33:28
Нет, сикрет вшивается в приложение, это как идентификатор клиента, например моб приложение имеет один сикрет, десктоп приложение другой
нельзя хранить секреты в мобильных приложениях - кому надо их всеравно достанут. и это даже проще чем получить данные через канал связи

Maxim
13.04.2018
09:34:08
Вы что тут делаете? Телеграм заблокирован же!
У меня что то с прокси большие трудности с работой телеги, особенно на мобильной сети.

Alan
13.04.2018
09:34:16
достанут как ? через рут и доступ к фс?

Google
Valentin
13.04.2018
09:35:00
нельзя хранить секреты в мобильных приложениях - кому надо их всеравно достанут. и это даже проще чем получить данные через канал связи
Такс, а как тогда мне сделать моё апи приватным? Ну т.е что бы к нему могли достучаться только допустим написанные мною приложения?

Konstantin
13.04.2018
09:35:27
расскажу как я сделал, точнее вот сейчас андроид переделываю на эту схему

Valentin
13.04.2018
09:36:09
Думал oauth как раз то что надо

Konstantin
13.04.2018
09:36:39
есть пара анонимных роутов через которые юзер может получить пару токенов, аксес и рефреш. аксес на 15 минут, рефреш на месяц (или неделю). каждый новый вход (с кредитсами) будет генерировать новый рефреш токен. т.е. если хочешь сделать отзыв спижженого рефреш токена - делаешь релогин и все

Alan
13.04.2018
09:36:50
так ведь кто достанет то? владелец телефона или левый софт?

Sergey
13.04.2018
09:36:54
Думал oauth как раз то что надо
oauth решает проблему предоставления доступа к другим ресурсам. Ну то есть когда у тебя фэйсбук (или сервер авторизации) и ты хочшеь используя аккаунт на нем логиниться в другие апки.

Konstantin
13.04.2018
09:36:55
рефреш нужен чтобы получать и обновлять аксес токен. в остальном он просто хранится на клиенте

Alan
13.04.2018
09:37:02
владельцу телефона ты итак дал доступ пусть достает че хочет

Konstantin
13.04.2018
09:37:29
до тех пор пока рефреш гэйт не скажет "мм твой рефреш токен протух, залогинься еще раз". такое случится если юзер целый месяц не пользовался апи например и не делал рефреш (т.е. не получал новый рефреш токен)

Google
Dinar
13.04.2018
09:37:37
Konstantin
13.04.2018
09:37:40
аксес действует 15 минут. потом надо обновлять

Sergey
13.04.2018
09:37:51
Это временно :)
наверное надо банить за разведение хайпа

Dinar
13.04.2018
09:38:06
Ок. Молчу.

Konstantin
13.04.2018
09:38:09
а в чем "приватность"?
в противоположности публичности

Sergey
13.04.2018
09:38:19
аксес действует 15 минут. потом надо обновлять
он другую проблему решает - как сделать так что только ТВОИ клиенты могут пользоваться ТВОЕЙ API

Michael
13.04.2018
09:39:02
Konstantin
13.04.2018
09:39:12
то есть я возьму рефреш токен и буду с ним обновлять без телефона?
я ж говорю - юзер делает релогин заново - и получает новый рефреш. старый становится невалидным и по нему нельзя работать

Valentin
13.04.2018
09:39:23
он другую проблему решает - как сделать так что только ТВОИ клиенты могут пользоваться ТВОЕЙ API
Да, и только мои, что бы какой то условный Петя не писал свой клиент под моё апи с блэкджеком и т.д

Sergey
13.04.2018
09:39:24
короч я хз.... как по мне oauth удобен когда ты делаешь сервис, через который планируешь логины разрешать. Удобно когда бизнес подразумевает интеграцию со сторонними приложениями

Konstantin
13.04.2018
09:40:00
бляяяяя

Sergey
13.04.2018
09:40:01
Да, и только мои, что бы какой то условный Петя не писал свой клиент под моё апи с блэкджеком и т.д
короч низя. Никак. МОжно просто сделать процесс "доступа к API" сложным но всегда можно будет все узнать и все посмотреть

релогин каждые 15 минут?
почитай как рефреш токены работают

Alan
13.04.2018
09:40:25
ну увели у меня рефреш я не делал релогин

им пользуются, вверно?

Konstantin
13.04.2018
09:40:34
могут ага

рефреш нужен чтобы каждый божий день не просить юзера логиниться

Google
Konstantin
13.04.2018
09:41:44
в то же время сам рефреш токен не является логином паролем

это было бы странно просить мобильного пользователя логиниться через соцсеть каждый раз открывая приложение

Valentin
13.04.2018
09:42:15
короч низя. Никак. МОжно просто сделать процесс "доступа к API" сложным но всегда можно будет все узнать и все посмотреть
Блин, ну это лажово я конечно усложнил своё приложение oauth сервером а профита получается 0

Konstantin
13.04.2018
09:43:00
да захотят взломать - взломают ) вся "приватность" только в том что к тебе боты не смогут просто так пробиться (без получения какого нибудь токена) чтобы парсить инфу на изичах

Sergey
13.04.2018
09:43:33
Блин, ну это лажово я конечно усложнил своё приложение oauth сервером а профита получается 0
oauth нужен для того что бы предоставлять доступ третьим лицам

если у тебя нет "третьих лиц" - то оно тебе не надо

пример когда oauth это круто и удобно - ты пишешь джирку или трелло какой, или сервис с которым хочешь легко интегрироваться

Konstantin
13.04.2018
09:44:15
или "войти через" есть функционал

Sergey
13.04.2018
09:44:20
или там в купе с SSO каким

ну или там тебе надо из active directory или из ldap поддержку мутить и ты можешь сверзу oauth заюзать

как абстракцию

но я не шарю а потому может кто подскажет реальные юзкейсы где oauth золото)

Konstantin
13.04.2018
09:45:57
oauth подразумевает что у тебя есть отдельный сервер аутентификации как третья сторона например

т.е. если к апке надо доступ по перс данным а хранить у себя их нельзя - юзаешь аут сервер чей то (той же соцсети)

и даешь доступ к своим ресурсам не храня ничьи конфиденциальные данные

Valentin
13.04.2018
09:48:38
Хорошо, допустим я этим не буду париться но хочу оставить аццесс токены - мне теперь в ручную это делать если за меня их оаутх сервер не делает? Т.е писать сервис который будет генерить, проверять и выдавать ацесс токены + рефреш токены?

Konstantin
13.04.2018
09:49:52
есть бандл который делает это за тебя )))

даже два

Valentin
13.04.2018
09:50:07
jwt?)

Konstantin
13.04.2018
09:50:24
для работы с аксес токенам - lexik jwt. для рефреша - jwt refresh bundle который как надстройка над lexik

Google
Konstantin
13.04.2018
09:50:58
можешь свой написать если не подходит решение

рефреш токены там вообще легкая надстройка - просто хранится отдельная табличка между user-id <-> refresh token, и следит по expire time

jwt для кодирования использует openssh ключи

которые ты на машине сгенеришь

Valentin
13.04.2018
09:52:31
Понял, спасибо) я так хотел убежать от жвт и в итоге прибежал к нему же

Konstantin
13.04.2018
09:52:53
хаха

с этого и надо было начинать! )

Damir
13.04.2018
09:55:06
Короче, у меня около 40 контроллеров. Явно просится всё это выделение в бандлы. Но учитывая последние изменения в SF4, возникает вопрос - а надо ли оно? Пихать в микросервисы - на данным этапе лишнее. А оставлять всё как есть тоже не хочется

Admin
ERROR: S client not available

Damir
13.04.2018
10:00:08
Sergey
13.04.2018
10:00:27
ага. остается вопрос по структуре. будет такой же как и в бандлах
я хз какая у тебя структура в бандле но у меня скорее всего будет по другому)

https://gist.github.com/fesor/76d39b19b18f7103a7c058301dc6a8fe

но конечно же тебе решать что у тебя и как

Konstantin
13.04.2018
10:01:54
у jwt есть плюшки - при наличии нескольких провайдеров юзеров он сам находит какой конкретно из них стучится с ключом. т.е. в контроллере получаешь UserInterface $user уже корректный

Valentin
13.04.2018
10:02:10
нафиг тебе JWT)
Ты постоянно советуешь от чего то отказаться но не учитываешь что я не понимаю последствий и всех нюансов

Google
Valentin
13.04.2018
10:03:24
а ты понимаешь последствия использования JWT?)
Я понимаю что отказавшись от них я буду изобретать их же но своими силами и кривым кодом

Sergey
13.04.2018
10:03:32
ну то есть давай пойдем от простого.... самый простой кейс с авторизацией через токены: - клиент мне присылает email + пароль, а я ему завожу сессию (в базе например) и в качестве ключа генерю рандомный токен (258 бит энтропии)

Sergey
13.04.2018
10:04:13
Damir
13.04.2018
10:04:14
я хз какая у тебя структура в бандле но у меня скорее всего будет по другому)
Action... А не проще стандарно Controller назвать? Если часть названий была до этого - стоит этому и следовать

Kirill
13.04.2018
10:04:36
так что там про jwt?

мне тоже интересно прост, что с ним не так

Sergey
13.04.2018
10:04:57
так что там про jwt?
JWT решает одну единственную проблему - стандартизация HAMC. ДАльше вопрос - а нужен ли тебе HMAC?)

как ты будешь решать вопрос инвалидации сессии?

Valentin
13.04.2018
10:05:43
Что делать при авторизации с разных устройств?

Kirill
13.04.2018
10:05:56
аутентификации

а у токена есть много критериев

Sergey
13.04.2018
10:06:46
сессия != jwt
да но тут люди для сессий его хотят юзать)

Kirill
13.04.2018
10:06:50
в том числе и подпись с помощью последовательности буковок

Страница 850 из 1418