Update RedirectIfNotAuthenticated.stub#117
Open
roydebangshu wants to merge 2 commits intobitfumes:masterfrom
Open
Update RedirectIfNotAuthenticated.stub#117roydebangshu wants to merge 2 commits intobitfumes:masterfrom
roydebangshu wants to merge 2 commits intobitfumes:masterfrom
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
as it is not go through the following method in
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....
This change has no direct impact on usability, it just modify the internal mechanism of authentication via middleware.