Авторизация jwt_sessions Rails - PullRequest
       39

Авторизация jwt_sessions Rails

0 голосов
/ 15 октября 2019

Я работаю с авторизацией с Rails (gem jwt_sessions). У меня есть контроллер входа и обновления контроллера. Я установил куки (jwt_access, refresh_access, csrf). В большинстве случаев сервер отвечает токеном csrf и сохраняет файлы cookie httponly (доступ, обновление). Затем клиент отправляет запрос с токеном csrf и получает ответ. Но также можно хранить токен csrf в cookie и отвечать только статусом на сервер (более безопасный способ). Но как авторизовать токен csrf из cookie?

Когда я помещаю токен csrf в заголовок запроса, он работает, но я хочу, чтобы он был в cookie и авторизовал его из cookie.

if is_valid_for_auth
  payload = { user_id: user.id }
  session = JWTSessions::Session.new(payload: payload, refresh_payload: payload)
  tokens = session.login

  response.set_cookie(JWTSessions.access_cookie,
                      value: tokens[:access],
                      httponly: true,
                      secure: Rails.env.production?)
  response.set_cookie(JWTSessions.refresh_cookie,
                      value: tokens[:refresh],
                      httponly: true,
                      secure: Rails.env.production?)
  response.set_cookie('csrf_token',
                      value: tokens[:csrf],
                      httponly: true,
                      secure: Rails.env.production?)
else
  render json: 'Invalid email or password', status: :unauthorized
end
...