Sha256: b9277b9bf898689607f69c5ae40352d8e558931588c42f175018dd9652a83127

Contents?: true

Size: 953 Bytes

Versions: 1

Compression:

Stored size: 953 Bytes

Contents

class Sessions::PasswordlessesController < ApplicationController
  skip_before_action :authenticate

  <%- if options.lockable? -%>
  before_action :require_lock, only: :create
  <%- end -%>
  before_action :set_user, only: :edit

  def edit
    @session = @user.sessions.create!
    response.set_header "X-Session-Token", @session.signed_id

    revoke_tokens; render(json: @session, status: :created)
  end

  def create
    if @user = User.find_by(email: params[:email], verified: true)
      UserMailer.with(user: @user).passwordless.deliver_later
    else
      render json: { error: "You can't sign in until you verify your email" }, status: :bad_request
    end
  end

  private
    def set_user
      @token = SignInToken.find_signed!(params[:sid]); @user = @token.user
    rescue
      render json: { error: "That sign in link is invalid" }, status: :bad_request
    end

    def revoke_tokens
      @user.sign_in_tokens.delete_all
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
authentication-zero-2.16.5 lib/generators/authentication/templates/controllers/api/sessions/passwordlesses_controller.rb.tt