Перейти к публикации
  • Сейчас на странице   Всего пользователей: 3   (0 пользователей, 3 гостя)

Rooster

Программирование, т. 7

  

536 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

Извини, ты сам выбрал ссанину типа вуе/реакта, вот и ебись с ним. Норм пацаны на ангулярах пропитанных тайпскриптом сидят  :fuckyea:


Я не человек, Я - Кантона. (с)

Miraxes#2986

753357.png

Поделиться сообщением


Ссылка на сообщение

Извини, ты сам выбрал ссанину типа вуе/реакта, вот и ебись с ним. Норм пацаны на ангулярах пропитанных тайпскриптом сидят  :fuckyea:

так я на ES2015 пишу, там почти всё тоже самое что тайпскрпит. Да и в ангуляре были похожие траблы.

Поделиться сообщением


Ссылка на сообщение

Извините, но у вас вуе


userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

Извините, но у вас жс


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

 

Так, бойз. Я сделал dive into javascript и столкнулся с такой проблемой: как, блять, понять чо откуда вызывается. :hmpalm:

Вот есть у меня либа (https://github.com/pagekit/vue-resource/blob/develop/docs/http.md ) я худо-бедно наебурил такое говно, использовав стековерфлоу дривен девелопмент:
 

Vue.http.interceptors.push(function(request, next) {
  request.headers.put('authorization', AuthService.getToken());
  next(function(response) {

    //Вот тут я хочу обработать респонз и если что-то пошло не так, заново вызвать реквест,
    //на повторную отправку. 
    if(response.status === 403){
       //КАК МНЕ БЛЯТЬ УЗНАТЬ КУДА ЭТА СУКА ВЕРНЁТ СВОЁ ЗНАЧЕНИЕ???????????
       return Promise.resolve(reLogin().then(_ => Vue.http(req)))
    }
  });
});

Как вы ваще код прослеживаете в JS, если через IDE пытаюсь дриллдаун сделать, он мне супер поносный-понос саджестит, ваще хуй пойми чо, но точно не то что нужно :fffuuu:

 

Или мне может просто опыта не хватает, ибо за 2 дня никак не могу привыкнуть ко всему этому поносу :prayshit:

 

 

 

Как бы это рли ебанутый код и js тут не причем. Vue.http это что вообще? Сервер на vue чтоль? Вообщем я понятия не имею как устроена функция next. Тебе с таким вопросом скорее к докам твоего сервера, чем к js богам.

 

Не я конечно могу ответить что-то вроде
function next(func) {
  // ВОТ СЮДА БЛЯТЬ
  const result = func();
}

Но врятли те это поможет


Изменено пользователем .felix

Поделиться сообщением


Ссылка на сообщение
(изменено)

Да хуйня все. Твой код не соответствует документации даже (нахуй лезть в переполненный стек) https://github.com/pagekit/vue-resource/blob/develop/docs/http.md#interceptors 

А вот как перехватывать респонсы https://github.com/pagekit/vue-resource/blob/develop/docs/http.md#return-a-response-and-stop-processing

Это я за 1 минуту нашел, офк не в курсе как это работает ваще  :trollface:

 

ЗЫ. Нахуй ловить 403 и делать релогин? Обычно на 401 так реагируют


Изменено пользователем Cantona.Eric

Я не человек, Я - Кантона. (с)

Miraxes#2986

753357.png

Поделиться сообщением


Ссылка на сообщение

Извините, но у вас вуе

Re-act so-sal


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

Да хуйня все. Твой код не соответствует документации даже (нахуй лезть в переполненный стек) https://github.com/pagekit/vue-resource/blob/develop/docs/http.md#interceptors 

 

А вот как перехватывать респонсы https://github.com/pagekit/vue-resource/blob/develop/docs/http.md#return-a-response-and-stop-processing

 

Это я за 1 минуту нашел, офк не в курсе как это работает ваще  :trollface:

 

ЗЫ. Нахуй ловить 403 и делать релогин? Обычно на 401 так реагируют

Неужели, а то я не смог этого найти, спасибо большое!

офк, нет :hmpalm: Я оттуда и брал пример использования

Блять, с этим куском кода ваще нет проблем, проблема в том, что я хочу продолжить выполнение программы, после того как залогинился. Условно не делать логин и перезагружать страницу, а делать логин в попапе и страница этот же реквест второй раз отсылает и продолжает выполнение флоу. Ловить буду и 403 и 401, просто у меня нет паблик страниц, на всё закрыт доступ для неавторизованных, так что api-сервер срёт 403 всё время :blnate: JWT авторизацию криво настроил, все пользователи GUEST, но АПИ разрешено только для ADMIN, короче просто ещё не переделывал по красоте :hohol:

 

 

 

 

Так, бойз. Я сделал dive into javascript и столкнулся с такой проблемой: как, блять, понять чо откуда вызывается. :hmpalm:

Вот есть у меня либа (https://github.com/pagekit/vue-resource/blob/develop/docs/http.md ) я худо-бедно наебурил такое говно, использовав стековерфлоу дривен девелопмент:

 

Vue.http.interceptors.push(function(request, next) {
  request.headers.put('authorization', AuthService.getToken());
  next(function(response) {

    //Вот тут я хочу обработать респонз и если что-то пошло не так, заново вызвать реквест,
    //на повторную отправку. 
    if(response.status === 403){
       //КАК МНЕ БЛЯТЬ УЗНАТЬ КУДА ЭТА СУКА ВЕРНЁТ СВОЁ ЗНАЧЕНИЕ???????????
       return Promise.resolve(reLogin().then(_ => Vue.http(req)))
    }
  });
});

Как вы ваще код прослеживаете в JS, если через IDE пытаюсь дриллдаун сделать, он мне супер поносный-понос саджестит, ваще хуй пойми чо, но точно не то что нужно :fffuuu:

 

Или мне может просто опыта не хватает, ибо за 2 дня никак не могу привыкнуть ко всему этому поносу :prayshit:

 

 

 

 

Как бы это рли ебанутый код и js тут не причем. Vue.http это что вообще? Сервер на vue чтоль? Вообщем я понятия не имею как устроена функция next. Тебе с таким вопросом скорее к докам твоего сервера, чем к js богам.

 

Не я конечно могу ответить что-то вроде
function next(func) {
  // ВОТ СЮДА БЛЯТЬ
  const result = func();
}

Но врятли те это поможет

Это типа популярная библиотека для отправки/получения запросов/ответов по http, типа как angular/http. Это не сервер, этой хуйнёй шлю get/post/hui/pizda запросы :hmtroll:

 

Извините, но у вас вуе

Ну окей, взял бы hui-pizda-name фреймвёрк, в чём бы там было отличие? Так же бы как болезный лазил по исходникам или там типа всё в 100 раз лучше?


Изменено пользователем DIMAN123456789

Поделиться сообщением


Ссылка на сообщение

Сформулируй свой вопрос 


Я не человек, Я - Кантона. (с)

Miraxes#2986

753357.png

Поделиться сообщением


Ссылка на сообщение
(изменено)

Ты делаешь авторизацию?

В реакте у нас все просто. Есть App, корневая часть приложения. Там вся основа обернутся в AuthWrapper. Этот враппер является компонентом, который выполняет авторизацию (во время componentDidMount). Далее на основе ответа мы просто указываем что хотим рендерить. Естественно никаких уебищных перезагрузок не происходит, юзер все так же сидит на изначальном урл и так далее. Враппер работает как "магические ворота", если они закрыты, то за ними ничего не существует, что полностью избавляет от головной боли связанной со всякими там проверками неведомой хуйни когда юзер перешел куда-то там каким-то хитровыебанным способом.

Вот собственно код метода рендера этого враппера, все легко и просто (все пути, прописанные до children расчитаны на общий доступ, доступный без авторизации, основной routing приложения расположен внутри App).

let authResult = <AuthView updateAuthState={this.updateAuthState} />;
    if (this.state.isLoading) {
      authResult = <LoadingPage pieLoader />;
    } else if (this.state.teamIsInvalid) {
      authResult = <TeamSwitcherPage inPlaceRedirect disallowClose />;
    } else if (this.state.authIsValid) {
      authResult = children;
    }
    return (
      <Switch>
        <Route path="/stories/view/:reportSlug" component={ReportPreview} />
        <Route path="/acceptable-use-policy" component={AcceptableUse} />
        <Route path="/acceptable-use-policy" component={AcceptableUse} />
        <Route path="/privacy-policy" component={PrivacyPolicy} />
        <Route path="/terms-of-service" component={TermsOfService} />
        <Redirect from="/password-reset" to="/reset-password" />
        <Route path="/reset-password/" component={AuthView} />
        <Route path="/third-party-login" component={ThirdPartyLogin} />
        <Route path="/">
          {authResult}
        </Route>
      </Switch>
    );
  }

Изменено пользователем suez

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

суез батя, не зря в сингапуре тусуется  :buba:

Поделиться сообщением


Ссылка на сообщение

Ахуеть че происходит


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение

А вот render метод самой аппы. Все то что внутри <Auth/> это и есть те самые children, которых ты увидишь только при удачном логине.

render = () => (
    <ApolloProvider client={client} store={store}>
      <div>
        <Router>
          <Auth>
            <Switch>
              <Route path="/ui-kit" component={UIKit} />
              <Route path="/stories/create/" component={ReportCreate} exact />
              <Route path="/stories/" component={ReportBuilderRouter} />
              <Route path="/pin-protected" component={PinProtected} />
              <Route path="/" component={Home} />
            </Switch>
          </Auth>
        </Router>
        <Modal options={this.state.modalOptions} />
      </div>
    </ApolloProvider>
  )

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

суез батя, не зря в сингапуре тусуется  :buba:

Это слишком жирно.


Я не человек, Я - Кантона. (с)

Miraxes#2986

753357.png

Поделиться сообщением


Ссылка на сообщение

а ты зачем подвох ищешь? 

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

Ты делаешь авторизацию?

В реакте у нас все просто. Есть App, корневая часть приложения. Там вся основа обернутся в AuthWrapper. Этот враппер является компонентом, который выполняет авторизацию (во время componentDidMount). Далее на основе ответа мы просто указываем что хотим рендерить. Естественно никаких уебищных перезагрузок не происходит, юзер все так же сидит на изначальном урл и так далее. Враппер работает как "магические ворота", если они закрыты, то за ними ничего не существует, что полностью избавляет от головной боли связанной со всякими там проверками неведомой хуйни когда юзер перешел куда-то там каким-то хитровыебанным способом.

Вот собственно код метода рендера этого враппера, все легко и просто (все пути, прописанные до children расчитаны на общий доступ, доступный без авторизации, основной routing приложения расположен внутри App).

let authResult = <AuthView updateAuthState={this.updateAuthState} />;
    if (this.state.isLoading) {
      authResult = <LoadingPage pieLoader />;
    } else if (this.state.teamIsInvalid) {
      authResult = <TeamSwitcherPage inPlaceRedirect disallowClose />;
    } else if (this.state.authIsValid) {
      authResult = children;
    }
    return (
      <Switch>
        <Route path="/stories/view/:reportSlug" component={ReportPreview} />
        <Route path="/acceptable-use-policy" component={AcceptableUse} />
        <Route path="/acceptable-use-policy" component={AcceptableUse} />
        <Route path="/privacy-policy" component={PrivacyPolicy} />
        <Route path="/terms-of-service" component={TermsOfService} />
        <Redirect from="/password-reset" to="/reset-password" />
        <Route path="/reset-password/" component={AuthView} />
        <Route path="/third-party-login" component={ThirdPartyLogin} />
        <Route path="/">
          {authResult}
        </Route>
      </Switch>
    );
  }

Ты не понял кейса. Условно у меня есть страничка, на ней таблица. Для добавления в таблицу элемента, нужно вызвать попап, заполнить данные и нажать SUBMIT. Токен авторизации выдаётся на 15 минут, если пользователь неактивен, то токен протухнет. Соответственно когда пользователь работает с системой, токен постоянно продливается при каждом обращении к бекенду ещё на 15 минут. И вот этот уёбок пошёл пить чай/на обед, форма создания открыта. Он ебанул сабмит, ЗАИГРАЛИ ФАНФАРЫ ЕГО РЕДИРЕКТИТ НА СТРАНИЦУ АВТОРИЗАЦИИ ФОРМА ПРОЁБАНА ВСЁ ПРОПАЛО, ОН ОХУЕВАЕТ. Я же хочу, что в случае если реквест пошёл на сервер и там встретил 401/403, то чтобы ему открылся на той же странице, без изменения общего состояния, попап авторизации, он там ввёл свои данные, нажал LOGIN, и у него запроцессилось то, на чём прервалось. Так понятнее кейс?

post-33804-0-77259500-1510755137_thumb.png

Я хочу, чтобы я нигде явно не вызывал этот вонючий попап, а чтобы он был на интерсепторах и промисах.


Изменено пользователем DIMAN123456789

Поделиться сообщением


Ссылка на сообщение

 

 

ЗАИГРАЛИ ФАНФАРЫ ЕГО РЕДИРЕКТИТ НА СТРАНИЦУ АВТОРИЗАЦИИ

и данные сохраняются в стор или стэйт, хз что там в vuex

Поделиться сообщением


Ссылка на сообщение

 

хуя, живой хапкомах

спешу тебя разочаровать, я не тот хапкомах, который жирный анимешник

 

ебaные наркоманы
TheDeadSkin понравилось это

Публикация отключена

Поделиться сообщением


Ссылка на сообщение

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


userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

Салам всем. Помогите с ангуляром.

 

Не могу блять перейти на другую страницу, ловлю ошибку:

 

По заданию нужно ввести имя, сохранить его в базе и перейти на другую страницу (страницу выбора продуктов). У меня имя норм вводится, кладется в базу, но блять на страницу никак не хочет переходить. Сейчас дошел вот до такой ошибки:

 

04JsFIiKT5SzXwmprS-HTw.png

 

 

Вот код

 

 

 

user_service.js

2HSbIsbfRuaM1XwjjgmBtg.png

 

 

user_controller.js

Q5FdpdrQSqqSlpm4PdMY1A.png

 

форма jsp-шной страницы:

eCMuhp-qSwmxnSeUKsaHBA.png

 

 

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...