From 718c7a61a5ec1ad05874a8abc1d1ed16379816f2 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Fri, 12 Jul 2019 15:53:49 +0800 Subject: [PATCH] Fix redirecting without URL query string after logged in --- app/Http/Controllers/AuthController.php | 4 +++- app/Http/Middleware/Authenticate.php | 2 +- resources/assets/src/views/auth/Login.vue | 6 ++---- resources/assets/tests/views/auth/Login.test.ts | 2 +- resources/misc/changelogs/en/4.4.0.md | 1 + resources/misc/changelogs/zh_CN/4.4.0.md | 1 + resources/views/auth/master.blade.php | 2 -- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index dd8402e0..8728e602 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -59,7 +59,9 @@ class AuthController extends Controller Cache::forget($loginFailsCacheKey); - return json(trans('auth.login.success'), 0); + return json(trans('auth.login.success'), 0, [ + 'redirectTo' => $request->session()->pull('last_requested_path', url('/user')), + ]); } else { // Increase the counter Cache::put($loginFailsCacheKey, ++$loginFails, 3600); diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index bd01714c..8d4c7b91 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -10,7 +10,7 @@ class Authenticate extends Middleware { if (! $request->expectsJson()) { session([ - 'last_requested_path' => $request->path(), + 'last_requested_path' => $request->fullUrl(), 'msg' => trans('auth.check.anonymous'), ]); diff --git a/resources/assets/src/views/auth/Login.vue b/resources/assets/src/views/auth/Login.vue index db264364..5621456c 100644 --- a/resources/assets/src/views/auth/Login.vue +++ b/resources/assets/src/views/auth/Login.vue @@ -89,7 +89,7 @@ export default { this.pending = true const { - code, message, data: { login_fails: loginFails } = { login_fails: 0 }, + code, message, data: { login_fails: loginFails, redirectTo } = { login_fails: 0 }, } = await this.$http.post( '/auth/login', { @@ -103,9 +103,7 @@ export default { ) if (code === 0) { this.$message.success(message) - setTimeout(() => { - window.location = `${blessing.base_url}/${blessing.redirect_to || 'user'}` - }, 1000) + setTimeout(() => (window.location = redirectTo), 1000) } else { if (loginFails > 3 && !this.tooManyFails) { if (this.recaptcha) { diff --git a/resources/assets/tests/views/auth/Login.test.ts b/resources/assets/tests/views/auth/Login.test.ts index 9340055d..c1e75af8 100644 --- a/resources/assets/tests/views/auth/Login.test.ts +++ b/resources/assets/tests/views/auth/Login.test.ts @@ -25,7 +25,7 @@ test('login', async () => { .mockResolvedValueOnce({ code: 1, data: { login_fails: 4 } }) .mockResolvedValueOnce({ code: 1, data: { login_fails: 4 } }) .mockResolvedValueOnce({ code: 1, data: { login_fails: 4 } }) - .mockResolvedValueOnce({ code: 0, message: 'ok' }) + .mockResolvedValueOnce({ code: 0, message: 'ok', data: { redirectTo: '' } }) const wrapper = mount(Login, { stubs: { Captcha } }) const form = wrapper.find('form') const warning = wrapper.find('.callout-warning') diff --git a/resources/misc/changelogs/en/4.4.0.md b/resources/misc/changelogs/en/4.4.0.md index 97b1ee9f..65e2cf3d 100644 --- a/resources/misc/changelogs/en/4.4.0.md +++ b/resources/misc/changelogs/en/4.4.0.md @@ -15,3 +15,4 @@ - Fixed renaming item in closet. - Fixed Font Awesome of bottom of home page. - Fixed loading front-end i18n texts of plugins. +- Fixed redirecting without URL query string after logged in. diff --git a/resources/misc/changelogs/zh_CN/4.4.0.md b/resources/misc/changelogs/zh_CN/4.4.0.md index 90f0e654..ebe70435 100644 --- a/resources/misc/changelogs/zh_CN/4.4.0.md +++ b/resources/misc/changelogs/zh_CN/4.4.0.md @@ -15,3 +15,4 @@ - 修复不能重命名衣柜物品的问题 - 修复首页底部 Font Awesome 的问题 - 修复插件系统中加载前端国际化文本的问题 +- 修复登录重定向没有包含 URL 查询的问题 diff --git a/resources/views/auth/master.blade.php b/resources/views/auth/master.blade.php index 9606b88b..c8049344 100644 --- a/resources/views/auth/master.blade.php +++ b/resources/views/auth/master.blade.php @@ -11,8 +11,6 @@ @include('common.seo-meta-tags') @include('common.dependencies.style') - -