• Как исправить redirect_uri is incorrect, check application redirect uri?

    @fidgethard
    Ответ довольно странный: нужно Доверенный redirect URI оставить пустым, а в адрес сайта и домен написать 127.0.0.1:8000
    Ответ написан
    1 комментарий
  • Как разобраться с авторизацией в Node.js?

    @Abcdefgk
    Ну, запугали человека - криптография-шриптография.
    Модуль passport - для того и готовый модуль, что он сам всю эту криптографию-шмиптографию сделает. Просто нужно освоить несколько пунктов.
    1. Установить в проект и настроить модули express-session и coockie-parser
    Без них passport не будет работать - а в чём же будет тогда смысл его работы, если он в сессию и записывает юзера после регистрации.авторизации? ("сессия" - это специальный подобъект в объекте request - req.session - куда passport сам вписывает под-объект user после авторизации)
    2. Разобраться, что passport - это общий модуль, который обеспечивает работу дополнительных модулей, в которых содержатся, как раз, всякие разные стратегии авторизации - локальная стратегия, через Фейсбук (passport-facebook), через Гугол (passport-google-oauth) и т.д.
    3. Для авторизаций через соцсети нужно в каждом случае поразбираться, как в них создавать "приложения" - оттуда для стратегий нужно будет брать ID юзера и Key, которые эти доп-модули будут запрашивать.
    4. Создаётся один большой файл-модуль для авторизации - типа auth.js - куда реквайрится сам passport плюс реквайрятся нужные (по желанию) стратегии. Типа вот так выглядит верхушка файла:
    var passport = require('passport')
    , FacebookStrategy = require('passport-facebook').Strategy
    , GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
    и для каждой из стратегий пишется код, который уже весь есть в документации модуля passport - его нужно оттуда взять и в нём, конечно, поразбираться. Не в криптографии-шриптогравии, а в этом конкретном коде.
    (Ну, и книжку внимательно изучить - я говорил в другом месте, какую)
    Ответ написан
    5 комментариев
  • Что такое Redux простыми словами?

    @KnightForce
    Чтобы понять как работает Redux тебе нужно норм вкуривать React.
    Хотя бы для того, чтобы не пугаться props.

    Есть у тебя React. Это все просто JS объекты.
    <Component /> - так позволяет писать движок jsx, который и React его использует.
    Так как структура компонентная, ты должен думать как обновить компоненты в в другой части страницы.

    Принцип такой: компонент обычно обновляется при получении новых свойств - props или когда меняется его объект состояния - state.

    Чтобы тебе обновить дальние друг от друга компоненты- тебе нужно продумать какие и где приходят свойства - чтобы пробросить функцию, которая вызовет перерисовку.

    Что делает Redux:
    Он не призывает отказываться от state.

    Но есть общий контейнер данных. И когда данные меняются - меняются и компоненты, которые отображают именно эти данные.

    Когда нужно что-то поменять - вызываешь dispatch - специальная функция reducer реагирует на это - и меняет данные как тебе нужно. Когда данные заменятся - компонент Propvider - вызывает рендер у своего дочернего компонента (тот что оборачивает Provider).
    Например:
    <Provider>
       <MyComponent />//Вот сюда Provider пробросит (запишет) новые props.
    </Provider>


    Записывает он это самое глобальное хранилище и все компоненты, для которых поменялись данные - перерисуются.

    mapStateToProps - указывает какую часть этого глобального хранилища будет предоставлять provider.
    Если у тебя оно такое:
    {
       chunkStore: {},
       some: {}
    }

    То если mapStateToProps вернет{store: store.chunkStore}то Provider в props своего потомка пробросит такое: store: store.chunkStore. И ты будешь обращаться внутри к store, но там будет только часть chunkStore (не весь объект, а его поле).

    mapDispatchToProps - т.к. subscribe нет, то это возвращает функции, которые могут внутри себя вызывать dispatch().

    action - описывает то что и на что ты хочешь поменять. Какое поле и какие данные туда поместить.
    Ответ написан
    Комментировать
  • Что такое Redux простыми словами?

    Лучшее объяснение Redux что я видел.
    getinstance.info/articles/react/learning-react-redux
    ba494148d28e422b4c7bd269de5bed09.png
    Ответ написан
    Комментировать
  • Что такое Redux простыми словами?

    edtoken
    @edtoken
    Full-stack Javascript/Python Developer
    В данном случае разное мышление (проектирование).

    В вашем случае:
    Логика идет от компонентов.
    Допустим на странице пользователя есть label online/offline
    Откуда брать значение, если нужно заблокировать окно чата в тот момент когда пользователь offline?
    Что если таких действий не одно, а допустим штук 10?
    Что если таких действий не одно, а допустим штук 10 и еще на разных страницах?
    Куда вынести функцию, которая проверит статус пользователя?
    Как её назвать чтобы не было конфликта имен?

    Redux для меня в первую очередь подход.
    1. Проектируется состояние (база данных фронта)
    {user:{online:false}}
    2. действие checkUserStatus (ajax/socket)

    3. сколько угодно компонентов (которые не знают друг о друге ничего и имеют любое поведение, в зависимости от статуса пользователя)
    компоненты могут ничего не уметь кроме как рендерить этот статус (label), или, могут быть более сложными и иметь логику + обработчики (кнопки, пр)
    Ответ написан
    4 комментария
  • Что почитать по созданию RESTful API новичку ?

    @MikhailEdoshin
    Кстати, я обычно еще всегда ищу и читаю критиков интересующей меня технологии — как правило, там оказывается очень полезная информация, которую от сторонников вы не услышите. Основное это то, что нестандартные для CRUD операции все скопом пойдут теми же POST запросами; что вызов функций получается, так сказать, гетерогенный — часть параметров берется из URL, а часть — из самого запроса; также часть результатов можно вернуть стандартными кодами HTTP, а для части приходится придумывать что-то еще.

    Иногда построенная логическая модель может быть неудобной в реальном использовании — как, например, выразить в REST, запрос типа «найти всех пользователей, интересы которых пересекаются с интересами текущего пользователя»? То есть, субъективно, разработать REST API сложнее, чем C-подобное API. Ну и по мелочам — нет поддержки транзакций, но это для простых сервисов не так важно.

    Пара критических заметок (на английском): 1, 2.
    Ответ написан
    Комментировать
  • MeteorJS минусы?

    @yeti357
    реактивный != молниеносная обработка
    у метеора раньше свой шаблонизатор был - неудобная работа со фронтом, ангуляр и рект сейчас тупо удобнее для фронтенда
    на стороне сервера поддержка только монги, она многим не нужна/не нравится
    вообще у всех задачи разные и проекты собираются из кирпичиков под свои требования, метеор недостаточно гибок для этого.
    Ответ написан
    Комментировать