
Edgar
07.06.2018
15:55:15
окей, метод отмены да

Adel
07.06.2018
15:55:22

Edgar
07.06.2018
15:55:30
но сама логика вот эта что может отменяться только в таких то и таких то статусах
это разве не БЛ?

Google

Adel
07.06.2018
15:56:08
особенно если это Write модель только...

Антон
07.06.2018
15:57:51
This constitutes a new Bounded Context - the Identity and Access Context - and will be used by other Bounded Contexts through standard DDD integration techniques. To the consuming contexts the Identity and Access Context is a Generic Subdomain. The product will be named IdOvation.
So according to Vernon probably the best solution to move the access control to a generic subdomain.
вот по вернону это вообще поддомен
тогда это не слой приложения

Adel
07.06.2018
15:58:15
вот кстати да. я сразу подумал про другой контекст
просто слишком уж тяжело выглядит решение

Антон
07.06.2018
15:59:12
вообще я пока не встречал в жизни DDD кроме как в книгах и гитхабе =)
получается что это все таки БЛ, но в отдельном контексте

Edgar
07.06.2018
16:00:12
ну так все четко, согласен
как полиси и метод
если на лару переводить)

Антон
07.06.2018
16:00:59
DDD и доменные модели - сложно, в 95% случаях только проблемы создает как я понимаю

Google

Антон
07.06.2018
16:01:04
нужно быть проще =)

Nik
07.06.2018
16:07:19

Станислав
07.06.2018
16:21:28
Всем привет
Не могу понять сделал jwt авторизацию , авторизируюсь
{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vZGVudGEubG9jL2FwaS9sb2dpbi91c2VyIiwiaWF0IjoxNTI4Mzg4NTI4LCJleHAiOjE1MjgzOTIxMjgsIm5iZiI6MTUyODM4ODUyOCwianRpIjoiNmlaTWZXOWtxTm1pUlFxbCIsInN1YiI6MSwicHJ2IjoiODdlMGFmMWVmOWZkMTU4MTJmZGVjOTcxNTNhMTRlMGIwNDc1NDZhYSJ9.n4SB4knTlgOq2dTWD7wY29cjy5iAxK7hEe0sRis-jAs","token_type":"bearer","expires_in":3600}
Но когда перехожу на
Route::group(['middleware' => 'api',], function ($router) {
Route::post('me', 'Auth\LoginController@me');
});
public function me(Request $request)
{
return response()->json($this->guard()->user());
}
Возвращает пустой {}
Мне нужен remember_token в таблице users?(

Edgar
07.06.2018
16:26:10
а ты в миддлваре делаешь логин юзера ?
грубо говоря, откуда у тебя гвард будет знать какой сейчас юзер

Станислав
07.06.2018
16:28:22
Аааа спасибо
Наверное нет

Евгений
07.06.2018
16:38:44
я поясните мне за jwt. Мы для клиента генерируем токен и время жизни. И уже сам клиент должен озаботиться тем как его потом обновлять?
например мобильное приложение если делать

Andy
07.06.2018
16:40:46

Евгений
07.06.2018
16:41:07
то есть не задавать время действия токена?

Andy
07.06.2018
16:41:18
сделал vue.js laravel jwt и обломался с приложением. пришлось заюзать passport

Евгений
07.06.2018
16:41:42
мне угодно понять как принято

Google

Andy
07.06.2018
16:42:29

Евгений
07.06.2018
16:43:18
эм
"приложение по дефолту приватное чисто юзерское)" не понял фразу

silks
07.06.2018
16:43:53
только присоединился, и вижу сообщения про секс с токенами на vuejs&laravel

Andy
07.06.2018
16:44:00
ну телефон у тебя всегда в кармашке)

Евгений
07.06.2018
16:44:32

silks
07.06.2018
16:44:36
это я так рефлексирую. у меня то он есть. целый день сегодня курю тему.

Andy
07.06.2018
16:45:27
забудьте про обычное jwt, если вдруг захотите в личном кабинете возможность юзеру убить сессию на каком-либо девайсе. passport/oauth это умеет, на всем остальном можно нагородить велосипедов

silks
07.06.2018
16:46:03
вприципе все. пока что изучаю просто изучаю.

Andy
07.06.2018
16:46:46
можешь развить мысль?)
я имел в виду, что в приложении токен как бы не должен сгорать. тк у тебя на логин скрине пароль/тач/глаза + в приложении может быть доп.пароль. а на сайте по идее желательно токен делать сгораемым
бля сори просто мысли вслух, тк сделал дополнительной работки по этой теме и уже обжегся в app’e

Евгений
07.06.2018
16:48:12
это какая то best practice или из своего опыта? я просто api еще не разрабатывал и сейчас как раз возмрожно придётся, вот и хочу разобраться. Хотя лучше пойду в интернеты за ответами

Andy
07.06.2018
16:50:05

Евгений
07.06.2018
16:51:41
мне просто представлялось что passport это чтото типа чтобы делать api как вконтакте, когда юзер себе приложуху создает для взаимодействия с апи, а я могу его потом ограничивать или отключать. Ладно, в чате всё равно не то, в интернетах буду искать инфу

Roman
07.06.2018
16:53:13
Как Андроид-разраб скажу.
Лучше для приложений токены делать живучими. Уж 100% не на 15-20 минут))
Или ясный механизм их рефреша. Но тогда все равно токен должен жить далеко не один день.

Andy
07.06.2018
16:54:45
трабл в том, что приложение может работать с обычной сессионной кукой. но для фронта это не ок) можешь даже не юзать passport и oauth. просто доп.поле в бд у юзера, в котором токен, который в свою очередь в store приложения. далее сравнение credentials и тд

Евгений
07.06.2018
16:57:35
ну то есть фронт сайта - это все кому не лень, приложение - тоже
понял

Andy
07.06.2018
16:58:45
так проще ведь оставить на фронте jwt с рефрешем, а для приложения просто добавить чутка кода с отдельной авторизацией

Google

Andy
07.06.2018
16:59:48
ну так Евгений вроде как oauth не хочет
у меня oauth2 и фронт и app)

Edgar
07.06.2018
17:06:10
https://dev.to/neilmadden/7-best-practices-for-json-web-tokens
6 пункт
мне лично понравилась идея с блэклистом
если, допустим, хранишь дату выдачи токена в нем и юзер айди то пишешь в блэклист айди юзера и дату, с которой токены считаются валидными(момент ревока токена)
хотя там вроде это дефолтные поля))

Игорь
07.06.2018
17:15:01

Andy
07.06.2018
17:19:16

Edgar
07.06.2018
17:20:15

Andy
07.06.2018
17:21:12
я есть грут

silks
07.06.2018
17:25:52

Roman
07.06.2018
17:26:15
Раз уже тут зашла мобильная тема.
Я новичок в back-end. Только начал изучать.
И что меня удивило: это всякие шаблонизаторы вроде blade.
Я думал, что уже давно почти все сайты сложнее блога используют API.
С json- запросами и -ответами, токенами и т.д.
По идее же бек от фронта должен быть отделён, не так ли?
Чтобы его могли те же фронт-ендщики делать, не таща с собой весь проект?
Да и мобильное приложение по-другому не сделаешь.
А тут всё через blade фигачится...
Или я чего-то не понимаю? ?
Прошу камнями не кидаться.
Да просто интересно и странно)
Во всех уроках, что вижу, через него всё делается.
Так принято делать или как

f4rt~
07.06.2018
17:28:58
просто учат делать сначала абыкак

Александр
07.06.2018
17:32:36
Каждому проекту свой стек, не понимаю, откуда взялась вот это вот понятие, что не пилить спа - дурной тон?

Andy
07.06.2018
17:34:22

mr_makss
07.06.2018
17:34:31
...

Google

Игорь
07.06.2018
17:34:33
$countriesIds = $_POST['countries'];
$genresIds = $_POST['genres'];
$films = Film::
whereHas('country', function($query) use ($countriesIds) {
$query->whereIn('country_id', $countriesIds);
})
->whereHas('genres', function($query) use ($genresIds) {
$query->whereIn('id', $genresIds);
})
->get();
Допустим страны или жанры не выбраны. Тогда появится ошибка
Как сделать так чтобы если не выбраны страны / жанры выводилось всё что есть?
Запрос собранный конструктором выглядит так:
select * from `films where exists (select * from countries where films.country_id = countries.id and country_id in (?)) and exists (select * from genres inner join film_genre on genres.id = film_genre.genre_id where films.id = film_genre.film_id and id in (?)) `

Andy
07.06.2018
17:36:38

Александр
07.06.2018
17:36:53

Игорь
07.06.2018
17:38:13