Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update RedirectIfNotAuthenticated.stub #117

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Commits on Jun 12, 2020

  1. Update RedirectIfNotAuthenticated.stub

    This change is  to make the MultiAuth system compatible with Laravel default Authentication process and to behave identical as "web guard" or "User Model".
      
    Actually there is a little problem if we use 
     
    public function handle($request, Closure $next, $guard = 'student')
        {
            if (!Auth::guard($guard)->check()) {
                
                return redirect('student\login');
            }
    
            return $next($request);
         }
    
    
    as it is not go through the following method in 
    
    //Illuminate\Foundation\Exceptions\Handler.php;
    
    /**
         * Convert an authentication exception into a response.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Illuminate\Auth\AuthenticationException  $exception
         * @return \Symfony\Component\HttpFoundation\Response
         */
        protected function unauthenticated($request, AuthenticationException $exception)
        {
            return $request->expectsJson()
                        ? response()->json(['message' => $exception->getMessage()], 401)
                        : redirect()->guest($exception->redirectTo() ?? route('login'));
        }
    
    in this method redirect()->guest() play a role to set Intended Url $this->setIntendedUrl($intended); .
    
    So, for your newly created guard i.e. "student" if you not go through $this->setIntendedUrl($intended);  in "unauthenticated" situation  then after authentication rather than redirect to "student dashboard" it will redirect to previously set Indented Url.
    
    To understand this you can check it. Do the following....
    
    Two guards -  User(web/default) and student
    
    **in logout condition
    first visit domain.test/home [ user home page, don't login]
    then visit domain.test/student [student dashboard and do login in student]
    
    after student successful login it will redirect to domain.test/login instead of domain.test/student.
    roydebangshu authored Jun 12, 2020
    Configuration menu
    Copy the full SHA
    f1c848e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9d3a882 View commit details
    Browse the repository at this point in the history