Sha256: 933bbca405cb4e90c5660c6bd799672f039c3b0f8d987cf1b189faf471aed4d9
Contents?: true
Size: 1.67 KB
Versions: 2
Compression:
Stored size: 1.67 KB
Contents
# see http://www.emilsoman.com/blog/2013/05/18/building-a-tested/ module DeviseTokenAuth class SessionsController < Devise::SessionsController prepend_before_filter :require_no_authentication, :only => [:create] include Devise::Controllers::Helpers include DeviseTokenAuth::Concerns::SetUserByToken respond_to :json def create @user = resource_class.find_by_email(resource_params[:email]) if @user and valid_params? and @user.valid_password?(resource_params[:password]) and @user.confirmed? # create client id @client_id = SecureRandom.urlsafe_base64(nil, false) @token = SecureRandom.urlsafe_base64(nil, false) @user.tokens[@client_id] = { token: BCrypt::Password.create(@token), expiry: (Time.now + DeviseTokenAuth.token_lifespan).to_i } @user.save render json: { data: @user.as_json(except: :tokens) } elsif @user and not @user.confirmed? render json: { success: false, errors: [ "A confirmation email was sent to your account at #{@user.email}. "+ "You must follow the instructions in the email before your account "+ "can be activated" ] }, status: 401 else render json: { errors: ["Invalid login credentials. Please try again."] }, status: 401 end end def destroy sign_out(resource_name) render json: { success:true } end def valid_params? resource_params[:password] && resource_params[:email] end def resource_params params.permit(:email, :password) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
devise_token_auth-0.1.25 | app/controllers/devise_token_auth/sessions_controller.rb |
devise_token_auth-0.1.25.beta1 | app/controllers/devise_token_auth/sessions_controller.rb |