Skip to content

Commit 970c67e

Browse files
authored
Merge pull request #793 from mshannaq/beforeLoginUrl
feat: redirect after login to entrance url
2 parents f334a92 + 098ac9b commit 970c67e

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

src/Config/Auth.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,8 @@ class Auth extends BaseConfig
409409
*/
410410
public function loginRedirect(): string
411411
{
412-
$url = setting('Auth.redirects')['login'];
412+
$session = session();
413+
$url = $session->getTempdata('beforeLoginUrl') ?? setting('Auth.redirects')['login'];
413414

414415
return $this->getUrl($url);
415416
}

src/Filters/SessionAuth.php

+5
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public function before(RequestInterface $request, $arguments = null)
7575
->with('error', $authenticator->getPendingMessage());
7676
}
7777

78+
if (! url_is('login')) {
79+
$session = session();
80+
$session->setTempdata('beforeLoginUrl', current_url(), 300);
81+
}
82+
7883
return redirect()->route('login');
7984
}
8085

tests/Authentication/Filters/SessionFilterTest.php

+11
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,15 @@ public function testBlocksInactiveUsers(): void
8383

8484
setting('Auth.actions', ['register' => null]);
8585
}
86+
87+
public function testStoreRedirectsToEntraceUrlIntoSession(): void
88+
{
89+
$result = $this->call('get', 'protected-route');
90+
91+
$result->assertRedirectTo('/login');
92+
93+
$session = session();
94+
$this->assertNotEmpty($session->get('beforeLoginUrl'));
95+
$this->assertSame(site_url('protected-route'), $session->get('beforeLoginUrl'));
96+
}
8697
}

0 commit comments

Comments
 (0)