• Как работает oauth2 для мобильных приложений?

    nazarpc
    @nazarpc
    Open Source enthusiast
    У меня на нескольких проектах сам сайт предоставляет приложению OAuth2:
    1) Приложение открывает в браузере страницу /OAuth2/authorize?response_type=token&client_id=client_id&redirect_uri=redirect_uri&state=state
    То есть у каждого приложения свой client_id, а в redirect_uri указывается website://website.com
    2) На сайте пользователь каким-то образом входит (логин+пароль, опять таки OAuth2 через Facebook, vk.com, и т.д.)
    3) Сайт после входа (либо сразу если пользователь уже авторизирован) редиректит обратно на redirect_uri#access_token=access_token&expires_in=expires_in&user_id=user_id&token_type=bearer&state=state
    4) Приложение ловит переход на website://website.com (website:// это кастомный протокол, приложение может зарегистрироваться в ОС на его обработку) и парсит то, что приходит после #

    Вот такая схема успешно работает, но нужно побеспокоиться об мобильной версии страницы входа в таком случае.
    Вообще-то то всё по стандарту, можете почитать RFC, там весьма детально и достаточно четко описано всё это.
    Ответ написан
    2 комментария
  • Каким образом сделана выборка новостей в контакте или в фейсбуке?

    alexclear
    @alexclear
    A cat
    Основное правило работы таких систем - соблюдение локальности данных. Второе правило "одна страница - один SQL запрос" (это если в системе вообще есть SQL). Если об этом долго думать, можно прийти к тому, что оба этих требования довольно логичны. Значит, последние K новостей, как и всю информацию, представляемую на странице пользователя, нужно хранить вместе с пользователем, чтобы доставать ее за один запрос. SQL это или NoSQL - не так важно. Эти данные кэшируются в памяти в специализированном кэше (сделанном, например, на Redis). Обновляются новости, само собой, асинхронно с использованием серверов очередей и специальных сервисов обновления, работающих в бэкграунде.
    Ответ написан
    2 комментария