
ainu
14.03.2017
06:44:51
то выше всего приложения надо делать проверку. Если авторизован - показываем роутер, внутри код и так далее. Если нет - показываем форму авторизации
тут вопрос закрыто авторизацией всё приложение или одна страница

Игорь
14.03.2017
06:46:31
одна страница. Просто история с конейнером, OnEnter кажется не надежной. Может это просто шиза хз

anoru
14.03.2017
06:46:36
Аж представил такую проверку в каждом компоненте =)

Google

ainu
14.03.2017
06:52:08
Смотрите. Если авторизация в сторе, и роутер тоже в сторе
можно в редьюсере авторизации делать редирект роутера
А, фигню сказал извините
Если страница одна то обертку уж.
Через неё гарантировано мимо не пройдёт. А onEnter сейчас документацию посмотрю самому интересно
https://github.com/joshgeller/react-redux-jwt-auth-example/blob/master/src/components/AuthenticatedComponent.js
Пример с оберткой
В 4-м роутере почему то нет onEnter в документации ну или я не нашёл.
В документации без Onenter пример кода авторизации https://reacttraining.com/react-router/web/example/auth-workflow
const PrivateRoute = ({ component, ...rest }) => (
<Route {...rest} render={props => (
fakeAuth.isAuthenticated ? (
React.createElement(component, props)
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
Судя по всему, рекомендуемое все таки декоратор, тем более для одной страницы. Что с ситуацией с onEnter в четверке - непонятно.


Ches
14.03.2017
07:33:20
народ подскажите в какую сторону думать если делаем post запросы через axios к апи, с локалхоста ошибка 405 options, methood not allowed, с сервера где все вместе и api и приложение все работает как нужно
return axios.post(${API}/site/login, {phone, password}).then

Google

Vladimir
14.03.2017
07:34:00

Ches
14.03.2017
07:39:03

Vladimir
14.03.2017
07:48:21

Ches
14.03.2017
07:53:06
так как мне понять что делать?

Khangeldy
14.03.2017
07:53:50
Кто сталкивался с таким. В redux-form-5.3 action initialize стерает nested object(clients.title, client.phone) после того как из сервера приходить ошибка валидаций. И при фокусе на любой input
Серверная валидация + фокус на инпут = поля client.title && client.phone стираються

Alex
14.03.2017
08:11:49
Всем привет. Подскажите пожалуйтса как передать в роуты сокет. Ps недавно начал юзать реакт)

Brs
14.03.2017
08:24:11
Можно сокет положить в контекст например

Alex
14.03.2017
08:25:18
вообще как лучше сделать чтобы был доступен сокет со всего приложения, использую еще redux
?

Denis
14.03.2017
08:25:41
Лучше его использовать как middleware
Которое генерит actions

Brs
14.03.2017
08:28:01
++

Lupsick
14.03.2017
08:28:19
+
Из сокета приходят данные и уходят в стор

Arsen
14.03.2017
08:40:16

Denis
14.03.2017
08:44:40
Мне вот интересно, а как правильно авторизацию надежную организовать на сокеты?

マイク
14.03.2017
08:47:51
Куки?
Вебсокеты это же HTTP

Google

Sergey
14.03.2017
08:49:06

Mark
14.03.2017
08:49:10
Куки?
Это аутентификация, а не авторизация

マイク
14.03.2017
08:49:45

Mark
14.03.2017
08:50:01

マイク
14.03.2017
08:50:14

Sergey
14.03.2017
08:50:28

マイク
14.03.2017
08:51:04
Я боюсь почти наизусть знаю всю спеку, спасибо

Mark
14.03.2017
08:51:17

Denis
14.03.2017
08:52:48
Вот это поворот!)

Razzwan
14.03.2017
08:53:02
Как сделать, чтоб роуты:
<Route exact path='/services' component={one} />
<Route path='/services/:service' component={two} />
Вели на абсолютно разные страницы? В доках пример, где второй роут - это часть первой страницы. А мне нужно, чтоб это было абсолютно разные

Denis
14.03.2017
08:53:26
Я почему то всю жизнь считал TCP Sockets ~= WebSockets

Mark
14.03.2017
08:54:02

Denis
14.03.2017
08:54:17
http://stratumsecurity.ghost.io/2016/06/13/websockets-auth/

Razzwan
14.03.2017
08:56:06
Вроде Switch нужно заюзать, он будет выбирать один Route из всех
<Switch>
<Route key={i + 100} path={resolveRoute(route.alias)+'/:service'} component={one.default} />
<Route key={i} exact path={resolveRoute(route.alias)} component={component.default} />
<Route component={NoMatch} />
</Switch>
У меня вот так сейчас написано. Это не работает. Всегда подключается компонент для второго роута

Mark
14.03.2017
08:57:04
resolveRoute(route.alias)
Что возвращает?

Razzwan
14.03.2017
08:57:27
для этих двух роутов это всегда возвращает /services

Mark
14.03.2017
09:00:21
Очень странно. Вроде все ок, только не понятно зачем key.

Razzwan
14.03.2017
09:01:12
Вообще, это все в map завернуто

Mark
14.03.2017
09:01:55
Может все таки оригинальный кусок кода скинешь? А то тут я не вижу проблему.

Razzwan
14.03.2017
09:03:10

Google

Razzwan
14.03.2017
09:03:40

Mark
14.03.2017
09:04:58
На 17 строчке ты возвращаешь div. В доках написано что children могут быть только Route и Redirect

Denis
14.03.2017
09:05:14
Кто уже попробовал https://buckbuild.com ?

Andrey
14.03.2017
09:12:44
так там нет js

Alexander
14.03.2017
09:15:57
Те, кто на RN пишут пробовали (но, скорее всего, сами не знают)

Алексей
14.03.2017
09:19:44
то что там есть BUCK не значит что ты его юзаешь по дефолту

Andrew
14.03.2017
09:20:00
Копирайт в футере у buckbuild 2013 года ?

Admin
ERROR: S client not available

Ruslan
14.03.2017
09:20:06
Есть такие чатлане с массой свободного времени, кто вчера посмотрел большую часть докладов с React Conf? =)

Алексей
14.03.2017
09:20:18

Ruslan
14.03.2017
09:22:17
у них там сайт поломанный? В schedule не реагирует на изменение route

Алексей
14.03.2017
09:23:15

Artem
14.03.2017
09:30:02
Ребят, хотел спросить по поводу конфигов в архитектуре, есть ли проверенный инструмент для того чтобы можно было в любой точке приложения иметь доступ к конфигами проекта, которые лежат в едином файле в корне проекта?

Razzwan
14.03.2017
09:32:11

Artem
14.03.2017
10:06:40

Сергей
14.03.2017
10:07:13
dotenv
https://www.npmjs.com/package/dotenv

Artem
14.03.2017
10:07:47
это получше будет?
если да то почему?

Google

Сергей
14.03.2017
10:08:18
Идеологически получше
ты во время сборки настраиваешь конфиг через энв переменные
в .env файле основной конфиг, и ты можешь переопределять как угодно через переменные окружения
доступ везде через process.env. и не перепутаешь имя переменной так просто

Artem
14.03.2017
10:09:51
то есть все конфиги будут хранится в переменных среды?
nconf кстати тоже позволяет редактировать во время сборки

Сергей
14.03.2017
10:10:38
я раньше сидел на nconf
но слез потому что не удобно
у меня много серверов и куча агентов CI
везде нужно описывать конфиги (ибо основной конфиг в .gitignore, потому что на каждый сервер свои настройки)
А так ci прокидывает переменные окружения, вроде какой ветки, какой сервер, а ещё некоторые переменные в ci настраиваются

Artem
14.03.2017
10:11:43
ясно
а можно скинуть gist применения ?

Сергей
14.03.2017
10:12:22

Artem
14.03.2017
10:12:26

Сергей
14.03.2017
10:12:27
https://www.npmjs.com/package/dotenv#preload

Artem
14.03.2017
10:13:12
ок

Сергей
14.03.2017
10:13:31

Artem
14.03.2017
10:13:50
??

Сергей
14.03.2017
10:14:33
что-то вроде
plugins: [ new DefinePlugin('process.env': process.env) ],
ну или
new DefinePlugin({ 'process.env': { ...process.env, MY_VAR: 'value' } })

Artem
14.03.2017
10:15:47
.env файл поддерживает js?

Сергей
14.03.2017
10:15:56
Нет
там:
VARNAME=value
VAR2=value2

Artem
14.03.2017
10:16:49
в таком случаае каким образом формировать вот такие вещи:
development: {
host: 'localhost',
port: '4242',
url: 'http://localhost:4242',
// #### Paths
// Specify where your content directory lives
paths: {
contentPath: path.join(__dirname + '/content/')
},
logging: true
},

Сергей
14.03.2017
10:17:27
не делать таких вещей)))
а статически записывать в месте использования, относительно директории