Sha256: 2990ae130a214d6a1869a1623019d2f6fdd3b27288fefa449d75eb61dc3f4f24

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module DeviseTokenAuth
  class ConfirmationsController < DeviseTokenAuth::ApplicationController
    def show
      @resource = resource_class.confirm_by_token(params[:confirmation_token])

      if @resource && @resource.id
        expiry = nil
        if defined?(@resource.sign_in_count) && @resource.sign_in_count > 0
          expiry = (Time.zone.now + 1.second).to_i
        end

        client_id, token = @resource.create_token expiry: expiry

        sign_in(@resource)
        @resource.save!

        yield @resource if block_given?

        redirect_header_options = { account_confirmation_success: true }
        redirect_headers = build_redirect_headers(token,
                                                  client_id,
                                                  redirect_header_options)

        # give redirect value from params priority
        @redirect_url = params[:redirect_url]

        # fall back to default value if provided
        @redirect_url ||= DeviseTokenAuth.default_confirm_success_url


        redirect_to(@resource.build_auth_url(@redirect_url, redirect_headers))
      else
        raise ActionController::RoutingError, 'Not Found'
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
devise_token_auth-1.0.0 app/controllers/devise_token_auth/confirmations_controller.rb
devise_token_auth-1.0.0.rc2 app/controllers/devise_token_auth/confirmations_controller.rb