@laravel_pro

Страница 1598 из 2014
Сергей
15.07.2018
15:11:10
Ну понятно. Отказываться от server-rendered форм.

Алексей
15.07.2018
15:57:06
Всем привет! Разрабатываю API для мобильного приложения и браузерного SPA. Встал вопрос о системы авторизации и возникли вопросы. Я кажется не совсем понимаю как работает JWT да и в принципе система токенов. Правильно ли я понимаю пайплайн осуществления доступа к защищённым ресурсам API? 1. Пользователь регистрируется через мобильное приложение. Мы создаём ему учётку и все. Токен нигде не фигурирует. 2. Дальше при входе зарегистрированного пользователя в систему выдаём токен доступа. Мобильное приложение его запоминает и при каждом обращении в API в заголовке передаёт просто токен без имени/пароля. 3. Получив запрос от мобильного приложения API проверяет наличия токена, ищет его в базе и если находит - даёт доступ к данным. 4. При истечении срока токена мобильное приложение его само обновляет. Буду благодарен за разъяснения.
Да

Gleb
15.07.2018
15:57:25
Да
Спасибо

Есть смысл использовать Passport, если я реализуют только API и не хочу, чтобы данные пользователя вызвались третьим лицам?

Google
Шахзод
15.07.2018
16:34:24
Привет ребят! Знаю, вопрос по MySQL, не по Laravel, но может кто знает ответ. Нужно создать триггер, который при добавлении в таблицу новых строк создавал новую таблицу с названием из двух значений этой новой строки (т.е. CONCAT(NEW.type, NEW.id) ). Но использовать вариант CREATE TABLE CONCAT(NEW.type, NEW.id) ... не выходит - не работает. Кто сталкивался с подобным?

Шахзод
15.07.2018
16:59:38
Так можно же средствами php сделать конкатенацию строк и потом создать таблицу
Да, но хотел обойтись одним запросом, т.к. создаваемые таблицы большие и изначально всегда пустые будут

Алексей
15.07.2018
16:59:53
Тебе нужно будет закрывать апи

И даже такие штуки как получение токена нужно делать через basic токен

Gleb
15.07.2018
17:01:16
Нет
Я же правильно понимаю, что Passport по сути реализует OAuth сервер? То есть если я хочу чтобы мое API было клиентом (от ВК например), то все это не обязательно. И чтобы авторизовывать юзера можно даже использовать JWT?

Алексей
15.07.2018
17:03:12
Gleb
15.07.2018
17:03:38
Тебе полюбасу нужен oauth
Почему? Я видимо ещё не до конца осознал концепцию OAuth

Алексей
15.07.2018
17:04:03
Почему? Я видимо ещё не до конца осознал концепцию OAuth
Это сервис который выдает токены по своей сути

Google
Алексей
15.07.2018
17:04:16
Кто у тебя токены будет давать?

Gleb
15.07.2018
17:04:24
Алексей
15.07.2018
17:04:32
Я (мое API)
Руками?

А

Ну я понимаю что твое апи

Как ты будешь это делать?

Ты будешь писать велосипед

Gleb
15.07.2018
17:05:29
Алексей
15.07.2018
17:05:42
Ну а JWT чем хуже?
Jwt это токен

А не метод авторизации

Шахзод
15.07.2018
17:05:51
Не совсем понял как у тебя запрос формируется.
Есть таблицы companies, users. При добавлении компании планировал тригером создать новую таблицы с названием из значений новой компании (type + id) и сгенерировать в users двух новых пользователей

Илья
15.07.2018
17:06:11
Ну а JWT чем хуже?
Passport же тоже JWT использует

Gleb
15.07.2018
17:08:27
А не метод авторизации
Не совсем понимаю. Мне же по сути надо пользователю мобильного приложения выдать токен при регистрации (логине). И не совсем понимаю чем OAuth будет лучше. На пальцах.

Nikitcat
15.07.2018
17:09:22
А если мне нужно только админку сделать, что выбрать? oAuth2?

Алексей
15.07.2018
17:09:53
Тебе нужно иметь что то, что будет выдавать токены взамен кредов.

Это можно сделать при помощи OAuth

Очень рекомендую под это отдельный микросервис

Google
Алексей
15.07.2018
17:10:29
Чисто под oauth

json
15.07.2018
17:11:39
паспорт юзается же как oauth провайдер. если человеку нужно просто логинится через вк, то он не нужен совершенно

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

Алексей
15.07.2018
17:17:30
Как повесить middleware на отдельные экшены Route::resources

Nikitcat
15.07.2018
17:17:43
Или это все реализует мне adminlte

json
15.07.2018
17:17:49
Как повесить middleware на отдельные экшены Route::resources
в контроллере через конструктор

Алексей
15.07.2018
17:18:28
Как повесить middleware на отдельные экшены Route::resources
https://laravel.com/docs/5.6/routing#route-group-middleware

Gleb
15.07.2018
17:18:40
возможно человек сам запутался что ему нужно
Еще раз. Пишу API для мобильного приложения. Встал вопрос об авторизации через API, поэтому начал смотреть в сторону Passport.

Илья
15.07.2018
17:18:57
Как повесить middleware на отдельные экшены Route::resources
В конструкторе $this->middleware('middlewarename')->only(['index', 'show'])

Илья
15.07.2018
17:19:14
Вроде так

Алексей
15.07.2018
17:19:31
json
15.07.2018
17:22:49
Еще раз. Пишу API для мобильного приложения. Встал вопрос об авторизации через API, поэтому начал смотреть в сторону Passport.
Да, можешь юзать паспорт. Прислушайся к совету вынести это в отдельный микросервис только

Алексей
15.07.2018
17:24:22
а можно линк что за лига?
https://github.com/thephpleague/oauth2-server

json
15.07.2018
17:24:47
оу, красиво

спасибо

Google
Алексей
15.07.2018
17:25:51
оу, красиво
У них там все красиво

Ну. Другие пакеты от них

json
15.07.2018
17:27:52
я просто когда разбирался с jwt решил писать свой костыль и сто раз переписывал все с нуля. но все равно не смог все сделать нормально

Gleb
15.07.2018
17:33:19
Да, можешь юзать паспорт. Прислушайся к совету вынести это в отдельный микросервис только
Хорошо. Вот у меня есть отдельный микросервис работающий на Passport. Но получается, что третьи лица могут стать клиентами моего сервиса и получать данные пользователя? И не понятно что будет в моем случае клиентом. Каждый пользователь зарегистрированный через мобильное приложение, либо само мобильное приложение? Или что-то другое?

Admin
ERROR: S client not available

json
15.07.2018
17:35:56
очень грубо говоря у тебя идет отдельная авторизация для мобильного приложения и отдельная для пользователя этого приложения

если ты пользовался сторонними апи, то вот эти secret_token'ы различные, которые они тебе выдают, это и есть авторизация твоего клиента

Gleb
15.07.2018
17:53:30
json
15.07.2018
17:53:39
нет

Maxim
15.07.2018
17:53:43
Посоветуйте хороших книг по php, желательно современных. Нашел "php глазами хакера", стоит прочесть?

json
15.07.2018
17:53:48
это все один клиент

вообще советую почитать как работает oauth(2) в целом и что такое jwt в частности

json
15.07.2018
17:54:36
времени это займет обратно пропорционально полученной пользе

Gleb
15.07.2018
17:55:17
времени это займет обратно пропорционально полученной пользе
Но правильно то, что кто-то со стороны сможет воспользоваться моим сервером?

json
15.07.2018
17:55:32
если ты дашь ему секретный токен приложения

Google
json
15.07.2018
17:56:18
грубо говоря потом при разработке приложения ты вшиваешь токен в код и используешь его при каждом запросе

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

FUTURICO
15.07.2018
17:56:44
Но правильно то, что кто-то со стороны сможет воспользоваться моим сервером?
выдаётся 2 токен, один для рефреша, второй содержит json данные ЗАШИФРОВАННЫЕ

json
15.07.2018
17:57:00
рефреш и json данные это уже JWT

FUTURICO
15.07.2018
17:57:00
расшифровать может только имею ключ или сбрутить, что по сути нереально при достаточной криптостойкости

json
15.07.2018
17:57:06
это другое

мы тут про авторизацию клиента и ограничение доступа

не авторизовав клиент ты даже зашифрованные данные не получишь

FUTURICO
15.07.2018
17:58:26
oauth это ведь другое и не связано с jwt

json
15.07.2018
17:58:43
косвенно связано

но секрет токен клиента это просто пароль произвольной длины. никаких шифрованных данных, в отличии от jwt он не несет

Но правильно то, что кто-то со стороны сможет воспользоваться моим сервером?
грубо говоря ты в oauth сервере на паспорте регистрируешь клиенты, которые могут иметь доступ к данным. Клиент это приложение в целом, не каждый его экземпляр. в процессе регистрации клиента ты присваеваешь ему права доступа и секретный ключ. потом этот ключ вшиваешь в приложение. авторизация пользователей каждого экзепляра приложения происходит на этом же сервере следующим образом: если приложение передает верный ключ, а пользователь вел правильные логин:пароль, то ему отдается JWT, содержащий краткую информацию о пользователе, чтобы другие твои сервисы могли их идентифицировать

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

Gleb
15.07.2018
18:15:07
Спасибо большое

Nikitcat
15.07.2018
19:05:25
почему карта пропадает, при помещении её в контейнер?

если посмотреть в инструментах разраба, то она есть

Farid
15.07.2018
19:25:35
Здравствуйте, есть такие строки в валидации: 'type' => 'required|in:array,link,text,photo', 'photo' => 'bail|required_if:type,photo|image', Почему возвращается ошибка, что поле photo не изображение, если type не равен photo ? Как сделать проверку на изображение только тогда, когда type == photo?

Nikitcat
15.07.2018
19:30:05
mimes: jpeg, bmp, png

Farid
15.07.2018
19:32:42

Страница 1598 из 2014