Anonymous
изоморфность есть, проблем с сео нет
Imelstorn
да, реакт поэтому и любят, что можно генерить все на сервере, соответственно уходят проблемы с сео
Imelstorn
я бы все-таки смотрел в сторону реакта - много успешных проектов, большое комьюнити, много разрабов (ресурсозаменяемость), множество готовых решений, технология более-менее обкатана. На ангуляр 2 пока смотрю с опаской.
sanqa
ну блин дизайн приходилось самому придумывать на ходу, хз думаю для не дизайнера, он норм получился DDD
Imelstorn
#whois Александр, Imelstorn в данный момент тружусь на Hewlett Packard предыдущий опыт - разработка аналитической платформы для рекламодателей на канале AMC (там был опыт использования angular). Вообще, веб-разработкой занимаюсь более 10 лет. Чат посоветовали коллеги. Интересен в рамках расширения кругозора по ангуляру.
sanqa
а поскидывайте свои SPA типо shopping cart или каталога обычного
sanqa
посмотреть на пободное
Anonymous
Отлично, спасибо, это то, что я искал :)
Viktor
И поэтому я не пишу сюда такие сообщения
Viktor
и другие не пишут
Viktor
:)
Anonymous
Прошу прощения, как-то не дочитал pinned message
Anonymous
есть у кого опыть с angular 1.x +redux ?
Jared
так и вроде с сео не будет такое решение дружить. если отрубить скрипты на страницах, мы увидим каталог товаров? Если нет, то пичаль, ибо поисковые боты не умеют жс, там специально нужно под это дело извращаться...
C SEO проблем нет, потому что гугл видит все также, как браузер. С начала прошлого года официально рекомендуют не использовать серверный пререндеринг
Jared
Достаточно грамотно SEO страниц строить на уровне роутов
Jared
а яндекс? Просто, сайт, представленный для обсуждения наверняка будет продвигаться в яндексе
Ситуация аналогичная, правда в рунете поднялись только ближе к концу прошлого года
Jared
Это я больше про поддержку действующих проектов и доп. усилия по сео-оптимизации - за нас уже обо всем позаботились, можно сосредоточиться на стандартных методах. Новые проекты однозначно надо начинать уже на втором ангуляре
Алексей
Последний раз предупреждаю в профильный чаты работу не постить! Все что связанно с работой (фриланс, удаленка, работа в офисе - в @javascript_jobs пожалуйста)
Nikolay
Немного оффтопа. Сталкивался кто с проблемой что в 52 лисе не работают sourcemap ?
Konstantin
Кто имеет опыт по миграции на Angular 2?
Aleksei
Konstantin
Про миграцию на ангуляр 2 ___________________________ Вопрос номер 1-раз. Как обосновать это для заказчика? Какой реальный профит кроме потраченного времени на миграцию и постотладку?
Дима
Можно припугнуть, что иначе потом придётся переходить уже на angular 4)
Konstantin
Не убедительно.
Дима
😄
Konstantin
Какие реальные плюсы?
Konstantin
Чем это поможет бизнесу?
Nikolay
а какие конкретно проблемы? все крутитсо ровно...
к бандлу имею .js.map файл. Chrome исходники по нему показывает. Лиса упорно ссылается на сам бандл в сжатом виде.
Max
Вопрос, есть небольшое спа приложение с юай роутом, все переходы по стейтам норм работают, пока не нажмешь в браузере назад, и парент стейт не перезагружается, и появляются typeerrors
Sasha
Кто имеет опыт по миграции на Angular 2?
Актуально кстати. Сам думаю о миграции на второй или вообще реакт-редукс. Но тайпскрипт понравился, а вот jsx нет
Konstantin
Ну ты уже нарыл что-то полезное для решения вопроса?
Konstantin
Если, что то тут народ сидит https://telegram.me/angular2
Sasha
Неа, пока не могу решить. Все равно, не раньше марта это делать. А вообще, я и там и там. Хотя я больше бэкендер, но так уж вышло
d0as8
можно попробовать обосновать тем, что ветка 1й версии тупиковая. у 2+ вроде как роадмап уже заполнен до 5 версии. есть намеки на улучшенный перфоманс. использование тс упростотит поддержку и отладку кода, а значит и издержки
Max
есть что то похожее на angular-permission ?
Konstantin
есть что то похожее на angular-permission ?
Я сам пилил. angilar-permission я чет не переварил
Konstantin
Если интересно, могу поделиться мыслями и примерами своей реализации.
Konstantin
1-я основная мысль. Т.к. SPA приложение полностью открыто, т.е. весь код приходит на клиент, то бэк должен обязательно контроллировать права, и при несанкционированном доступе ругаться!
Konstantin
В SPA приложении права проверяем для управлеия GUI...
Max
1-я основная мысль. Т.к. SPA приложение полностью открыто, т.е. весь код приходит на клиент, то бэк должен обязательно контроллировать права, и при несанкционированном доступе ругаться!
к сожалению сейчас такого нет, только один запрос который возвращает юзера с обектом пермишенов, которые или тру или фолс
d0as8
а в чем проблема отдаать весь спа всем без разбору? главное ограничить доступ к данным на уровне бекенда... это делаптся через сессии и средствами бекенда
Max
и как раз думал с помощью angular-permission, не давать заходить по прямым ссылкам на определенные стейты приложения в зависимости от того какой юзер залогинился
Max
а в чем проблема отдаать весь спа всем без разбору? главное ограничить доступ к данным на уровне бекенда... это делаптся через сессии и средствами бекенда
тем что сказали у бекендеров нет времени что то сделать, вот тебе задача разрулить по ролям доступ к тем или иным частям приложухи
Konstantin
Как работает у меня... При авторизации пользователя, с БЭКа тянется массив всех разрешений пользователя. В сервисе есть метод can который проверяет наличие права у пользователя. В нужный момент, где-то в коде, проверяем наличие права и дале что-то делаем или не делаем... Реализация метода can: /** * Проверка прав доступа для текущего пользователя * @param {string} permissionName имя права (разрешения) * @returns {boolean} */ function can(permissionName) { var userInfo = _getUserInfo(); return (typeof userInfo === 'object') && (userInfo['permissions'].indexOf(permissionName) > -1); } Использование где-то в коде: http://joxi.ru/YmE06ph0bbaar6
Anonymous
к сожалению сейчас такого нет, только один запрос который возвращает юзера с обектом пермишенов, которые или тру или фолс
Думаю с точки зрения секьюрности немного лучше будет, если присылать только те пермиссии, которые у пользователя, есть. Далее можно смапить в объект {permName: true}
Anonymous
Тем более если на сервер сайде нет проверки на права доступа (что неправильно)
Konstantin
а в чем проблема отдаать весь спа всем без разбору? главное ограничить доступ к данным на уровне бекенда... это делаптся через сессии и средствами бекенда
Ну если БЭК в стиле REST, то сессий быть не должно... В остальном все так. При каждом запросе проверяется право пользователя на возможность выполнения запрашиваемого действия. Если можно, то делаем, если нельзя, то отдаем 403 и SPA уже само решает как жить дальше. Про текущего пользователя бэк узнает из заголовков запроса по токену. Используем Auth2
Konstantin
Думаю с точки зрения секьюрности немного лучше будет, если присылать только те пермиссии, которые у пользователя, есть. Далее можно смапить в объект {permName: true}
У меня так и есть. При авторизации приходят именно те разрешение которые назначены пользователю. Далее суть проверки, это наличие требуемого разрешения в массиве, если нашли, значит можно, если не нашли, значит нельзя и все тут.
d0as8
почемв у реста не должно быть сессиий? стейтлес?
Konstantin
у REST должна поддерживаться полная независимость от состояний клиента
d0as8
вот я не вижу туту состояния кдиента. в данном случае сессия что и токен. индетификатор пользователя и его прав и только
Konstantin
Сессия закреплена за конкретными вызовами из конкретного барузера. В сессии как правило сохраняют каки-то доп. данные о текущей работе пользователя. Работа без сессий предполагает, что каждый запрос самодостаточен и все запросы могут быть выполнены в любом порядке не зависимо друг от друга.
Konstantin
Цитата: В отличие от Web-приложений, RESTful API обычно не сохраняют информацию о состоянии, а это означает, что сессии и куки использовать не следует. Следовательно, раз состояние аутентификации пользователя не может быть сохранено в сессиях или куках, каждый запрос должен приходить вместе с определенным видом параметров аутентификации. Общепринятая практика состоит в том, что для аутентификации пользователя с каждым запросом отправляется секретный токен доступа. Так как токен доступа может использоваться для уникальной идентификации и аутентификации пользователя, запросы к API всегда должны отсылаться через протокол HTTPS, чтобы предотвратить атаки «человек посередине» (англ. "man-in-the-middle", MitM).
d0as8
хорошо. есть токен, он привязан к абоненту и правам. более того, токен аверняка имеет время жизнь и все это сверяется на беке. это же состояние?
Konstantin
Все верно описал. Но это не состояние. Это способ аутентификации и выяснения можно ли выполнить запрошенный код и от дать данные. Состояние это... Допустим оформление заказа. На шаге 1 вносится некая инфа, она сохраняется в сесии и идем на шаг 2, потом шаг 3.... Отключение сессий в первую очередь запрещает подобные поведения. Ожидается, что фронт сам должен переварить у себя все шаги и единоразово что-то отдать беку получив вменяемый ответ
d0as8
да. но сессия используется как токен, то стейтдес не нарушается. как по мне так те же яйца... может, конечно есть соблазн чтото- хранить в сессии, но это,имхо, не причина отказаться от нее
Bohdan
а в чем профит стейтлес и того что сессии не используются?
d0as8
вы вносите данные в сессию на стороне спа?
d0as8
прозрачность архитектуры
Aleksei
А как хранить ссылку на spa? , открыл spa, перешел по роуту, но если перейду по получившейся ссылке, то бэкенд даже не поймет что делать. Пришла в голову идея записывать в куки куда просятся и перекидывать на spa и там руками переходить на нужный роут, но что-то вроде не очень это.
Kir
А как хранить ссылку на spa? , открыл spa, перешел по роуту, но если перейду по получившейся ссылке, то бэкенд даже не поймет что делать. Пришла в голову идея записывать в куки куда просятся и перекидывать на spa и там руками переходить на нужный роут, но что-то вроде не очень это.
У вас есть роуты которые для API, и есть одно правило который захватывает для все остальных url. Экшн привязанный к этому правило отдает код SPA. В SPA получаете путь как обычно. Если все пути к ресурсам относительные, то проблем быть не должно.
Aleksei
То есть я правильно понял что я просто прокидываю url на фронт и там уже разруливаю?
Kir
Даже прокидывать не надо, он же там доступен уже. Ну какой-нибудь ui-router так же разберет строку. Единственно понадобится <base href="/" /> в SPA И следить за относительными ссылками в коде
Kir
И html5Mode у locationProvider должен быть настроен правильно
Aleksei
Понял, спасибо, буду разбираться
Nikolay
Такой вопрос, если не писал под angular примерно год, я сильно отстал? И кроме доки что то нужно почитать чтоб наверстать?
Igor
бери сразу 2й
Nikolay
второй сейчас учу
Nikolay
но на работу берут пока с первым
Дима
В вакансиях постоянно уже вижу второй