Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (12)

Наибольший вклад в теги

Все теги (52)

Лучшие ответы пользователя

Все ответы (25)
  • SPA и REST API - как грамотно построить аутентификацию?

    @motomac
    Делаем два метода аутентификации: Resource Owner Password Credentials Grant и Refresh token grant.

    SPA отправляет логин/пароль юзера на первый endpoint. В ответ получаем access_token (например, JWT), refresh_token и expires_in. Сохраняем все это добро куда-нибудь, например, в Local Storage. Время жизни JWT-токена лучше ставить небольшое (например, 1 час), потому что отозвать его нельзя. Далее SPA при каждом запросе к API проверяет время жизни токена expires_in из Local Storage, и когда оно истекает, отправляет запрос на обновление токена (refresh_token). Все это прозрачно для юзера.

    Stateless, по-моему, и проще, и универсальнее. Если потом делать, например, мобильное приложение, API переписывать не придется.

    Вся фишка JWT по сути только в том, что не нужно дергать БД при каждом запросе к API. Делать это придется, например, только раз в час при refresh'е токена. Больше никаких существенных преимуществ перед традиционными токенами, хранящимися в БД, нет.

    Советую курить именно официальный RFC по oAuth2, а не всякие блогпосты а-ля "OAuth2 простыми словами". Сам через это прошел. RFC - самый понятный и доходчивый источник знаний.
    Ответ написан
    1 комментарий
  • Дизайн REST API: Как сейчас принято передавать авторизационный токен?

    @motomac
    В спецификации OAuth 2.0 (если вы его используете) явно указывается формат:

    Authorization: Bearer <token>

    https://tools.ietf.org/html/rfc6749#section-7.1

    Думаю, не лишним будет следовать ему.
    Ответ написан
    Комментировать
  • Какие англоязычные аналоги «Хабрахабра» существуют?

    @motomac
    Ответ написан
    Комментировать
  • Какие CMS движки для создания landing pages вы используете или знаете?

    @motomac
    Я себе делал статический сайт через Jekyll. Нужна была мультиязычность и ещё чуток динамики. Если это не нужно, то, как говорили выше, HTML, CSS, JS самый простой вариант.
    Ответ написан
    Комментировать
  • Лучший форум на PHP?

    @motomac
    phpBB
    Плюсы:
    1. бесплатный
    2. стабильный и безбажный
    3. быстрый и легкий
    4. понятный

    Минусы:
    1. чуток отстает от современных трендов веб-разработки
    2. включает только форум. Всякие доп. модули типа фотогалереи в него не входят
    IPS
    Плюсы:
    1. современный (на острие трендов)
    2. имеется большое число доп. модулей типа фотогалереи, блогов и прочей (бесполезной) фигни

    Минусы:
    1. платный. Сперва купить, потом платить за подписку каждые полгода, либо жить без обновлений (нереал)
    2. большинство доп. модулей платные. Это и хорошо, и плохо. Плохо, потому что надо платить. Хорошо, потому что у разработчиков есть стимул
    3. тонны багов даже в старых стабильных версиях. Благо с подпиской техподдержка их фиксит по твоему требованию
    4. очень прожорлив к ресурсам
    5. непонятный. Админка - это ад. Настроек столько, что их невозможно запомнить, а иногда и понять их смысл. Неудивительно, что форум небыстрый.
    6. имеется проблема с переводом на русский. Лангпаки, конечно, есть, но их качество оставляет желать лучшего. Количество языковых строк в IPS исчисляется тысячами - неудивительно, что их невозможно легко перевести в едином стиле. С phpBB за многие годы у меня ни разу не возникало желания исправить стандартный русский перевод. С IPS я делаю это регулярно.
    7. слегка странная логика разработчиков. Наворотили миллионы функций, а самых элементарных типа массовой модерации списка тем в результатах поиска до сих пор нет и, видимо, не планируется. Да и в целом много шероховатостей и непонятностей для рядовых пользователей. Например, IP.Gallery - образчик альтернативной логики.

    В общем, если у вас нет планов сделать из форума космический корабль с миллионом (бесполезных) функций, то однозначно phpBB.
    Ответ написан
    3 комментария

Лучшие вопросы пользователя

Все вопросы (33)