Welcome Guest, Not a member yet? Register   Sign In
Redirect inside Constructor NOT WORKING
#9

The correct way of doing it in CI 4 is using Controller Filters.

This is how Lonnie doe's it for Myth/Auth.

PHP Code:
<?php namespace Myth\Auth\Filters;

use 
Config\Services;
use 
CodeIgniter\HTTP\RequestInterface;
use 
CodeIgniter\HTTP\ResponseInterface;
use 
CodeIgniter\Filters\FilterInterface;

class 
LoginFilter implements FilterInterface
{
    
/**
     * Do whatever processing this filter needs to do.
     * By default it should not return anything during
     * normal execution. However, when an abnormal state
     * is found, it should return an instance of
     * CodeIgniter\HTTP\Response. If it does, script
     * execution will end and that Response will be
     * sent back to the client, allowing for error pages,
     * redirects, etc.
     *
     * @param \CodeIgniter\HTTP\RequestInterface $request
     *
     * @return mixed
     */
    
public function before(RequestInterface $request)
    {
        if (! 
function_exists('logged_in'))
        {
            
helper('auth');
        }

        
$current = (string)current_url(true)
            ->
setHost('')
            ->
setScheme('')
            ->
stripQuery('token');

        
// Make sure this isn't already a login route
        
if (in_array((string)$current, [route_to('login'), route_to('forgot'), route_to('reset-password')]))
        {
            return;
        }

        
// if no user is logged in then send to the login form
        
$authenticate Services::authentication();
        if (! 
$authenticate->check())
        {
            
session()->set('redirect_url'current_url());
            return 
redirect('login');
        }
    }

    
//--------------------------------------------------------------------

    /**
     * Allows After filters to inspect and modify the response
     * object as needed. This method does not allow any way
     * to stop execution of other after filters, short of
     * throwing an Exception or Error.
     *
     * @param \CodeIgniter\HTTP\RequestInterface  $request
     * @param \CodeIgniter\HTTP\ResponseInterface $response
     *
     * @return mixed
     */
    
public function after(RequestInterface $requestResponseInterface $response)
    {

    }

    
//--------------------------------------------------------------------


Would be a good idea to sit down on a weekend and read the CodeIgniter 4 User Guide.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply


Messages In This Thread
RE: Redirect inside Constructor NOT WORKING - by InsiteFX - 12-24-2019, 09:12 AM



Theme © iAndrew 2016 - Forum software by © MyBB