Давайте обсудим. Если выдавать доступ другим не планируешь есть ли смысл использовать oauth? И даже если планируется нужно ли свои приложения (фронт моб десктоп) держать на oauth? Какие преимущества можно с этого получить в сравнении с обычным ключом api_token (дополнительным уникальным полем в таблице user)
Не понимаю о чем ты. Что бы войти через oauth тебе нужно отправить черт знает сколько запросов. Первый с логином и паролем для получения пользователя. Потом запрос на получения его токенов. Если токена нет то снова запрос что бы его создать.
Ну а вдруг какие то скрытые преимущества есть) Ну как минимум в oauth мы получаем единую систему. В случаи с api_token и laravel придется под каждое устройство создавать свою миделвару и свой api_token так как стандартное решени не очень масштабируется. Кто чем пользуется? --- Добавлено --- @romach расскажи как оно на практике. Все запросами? Или создаешь при регистрации а при авторизации mysql? Метода который вернет все ключи пользователя (на сервере) я так и не нашел.
Ну а какая задача в том что я на react переписываю вместо того что бы уже постить приложение. Псих я вот и интересно) У тебя на игровой стене что? Или ничего еще нет? Что на сайте для студентов?
passport же - бери и юзай, там есть довольно простая реализация. Шлешь логин / пароль, получаешь auth_token и refresh_token, первый протух, стучишься за вторым, оба протухли - считай и не было юзера. А что бы совсем стало весело, берешь axios, заранее его конфигурируешь, что бы он подставлял токен в каждый запрос и вешаешь event на проверку протухания. Всё. И таки перечитай ещё раз, passport так же предоставляет api для управления токенами клиента самим клиентом, при чем с разными настройками разрешений. Ну а какую логику ты вокруг этого навернешь - уже твои проблемы, ларка - это вам не yii, тут генераторов crud`а нет, а то что было выпилили из фрейморка ещё вроде в 4 ветке, во имя ) а я тебе ещё тогда говорил, что api_token хоть и прост, но в его возможности легко упереться.
@nospiou с помощью алгоритма OAuth можно организовать управляемую из браузера авторизацию серверного приложения. То есть благодаря серверному колбек, ты можешь подружить между собой два серверных приложения, имея учетную запись в каждом из них, но не передавая одному пароль от другого. Для этого она была придумана, смотри, какая у тебя задача.
У меня с логикой все плохо. Если б я мог хранить секретный ключ этого клиента (web) в коде js тогда ок. При входе мы берем ключ логин пароль и получаем токен при выходе токен удаляем. Или не такой уж он секретный? Если попытаться переместить логику на сервер там много вопросов по оптимизации возникает. Религия не позволяет делать с php запросы) @[vs] Если выдавать доступ другим для других организовать что то сложное где нужно много токенов тут oauth хорош. А если нужны токены только для своих 3 приложений возникают вопросы. --- Добавлено --- @[vs] Хакерский ник. Не подсвечивается. --- Добавлено --- @romach Ну и вопрос касательно веб стора. Ты где хранишь ключи? В куках или в нем? Поддержка с ie8. А сам vue\react c ie9 --- Добавлено --- Защиту от перебора пароля придется самому писать? Или passport как то это проверяет? (после n попыток ждем...)
Как минимум если человек знает свой логин пароль и секретный ключ он сможет забить сервер миллионами токенов. В любом случаи нужно писать логику на сервере и с сервера уже делать запрос на получения ключей. Единственное что нашел в laravel это auth()->user()->createToken('MyApp')->accessToken а где delete check и т.д?
Методом ide нашел мистический метод auth()->user()->token()->delete() Уже хоть не придется делать лишние запросы на получения id и удаления token. Кстати а где хранятся сами токены? в базе их нет в сессиях тоже это что за полтергейст такой?
у тебя нет четкой задачи и чётких критериев но ты оцениваешь решение на соответствию критерию "мало запросов", что само по себе весьма нечётко. ты говоришь что то решение, что ты сейчас используешь - плохое, т.к. делает много запросов. но нет критериев того, сколько запросов будет нормально и почему вообще тебя это напрягает понимаешь?
Не сложное, а чтобы авторизовать приложение А на работу с приложением Б от имени чувака, который сидит за компом и залогинен в приложении Б. --- Добавлено --- Все 3 твоих приложения смотрят в одну БД?