/
Infernocasis
/
X.com
Обзор
Документация
Войти
/
Infernocasis
/
X.com
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/controllers/api/v1/auth_controller.rb
49 строк
2 KB
Infernocasis
Initial commit
08 июн 2025, 20:43
08 июн 2025, 20:43
68371ab
Код
Авторство
О чём код?
module Api module V1 class AuthController < ApplicationController skip_before_action :authenticate_user, only: [:login, :register] def login user = User.find_by(email: params[:email]) if user&.authenticate(params[:password]) token = JWT.encode( { user_id: user.id, exp: 24.hours.from_now.to_i }, Rails.application.credentials.secret_key_base, 'HS256' ) render json: { token: token, user: user } else render json: { error: 'Invalid email or password' }, status: :unauthorized end end def register Rails.logger.info "Registration params: #{params.inspect}" user = User.new(user_params) Rails.logger.info "User object before save: #{user.inspect}" if user.save token = JWT.encode( { user_id: user.id, exp: 24.hours.from_now.to_i }, Rails.application.credentials.secret_key_base, 'HS256' ) render json: { token: token, user: user }, status: :created else Rails.logger.error "User validation errors: #{user.errors.full_messages}" render json: { errors: user.errors.full_messages }, status: :unprocessable_entity end end def me render json: current_user end private def user_params Rails.logger.info "Raw params: #{params.inspect}" params.require(:user).permit(:username, :email, :password) end end end end