Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Authentication in rails. Monolith vs SPA

Authentication in rails. Monolith vs SPA

Dmitry Efimov

November 19, 2015
Tweet

More Decks by Dmitry Efimov

Other Decks in Programming

Transcript

  1. Browser Server POST /authenticate username=...&password=... HTTP 200 OK Set-Cookie: session=.......

    GET /api/user Cookie: session=.... HTTP 200 OK { name: “foo” } find and deserialize session
  2. Browser Server POST /authenticate username=...&password=... HTTP 200 OK { token:

    ‘...JWT…’ } GET /api/user Authorization: Bearer ...JWT... HTTP 200 OK { name: “foo”} validate token
  3. На практике - требования к проекту меняются - нетривиальные задачи

    - гемы могут работать некорректно - встречаются противоречия в документациях к гемам - нет универсального метода аутентификации
  4. gem install activerecord-session_store rails generate active_record: session_migration Rails.application.config.session_store : active_record_store,

    :key => '_my_app_session' ActiveRecordStore MemCacheStore install redis / rabbitmq Rails.application.config.session_store : mem_cache_store, key: '_project_session'
  5. OpenAuth / OAuth / OAuth2 аутентификация авторизация данные сессии хранятся

    не в cookies получение доступа к данным пользователя токен определяет роль