如何解决Laravel Multi-login像Google / Gmail
我有一个Laravel应用,用户可以在其中登录和管理帐户。我们的用户要求他们必须能够同时登录多个帐户,类似于Gmail的工作方式。
我开始研究,发现another StackOverflow post也在尝试/也实现了这一目标,但是关于他们如何实现目标的方向有些模糊。
更复杂的是,在验证用户身份之后,所有路由均由Vue-router处理,并且该应用程序充当SPA。
经过身份验证路由后,我可以使用Vue路由器的所有功能:
$user_login = ( (int)request()->segment(2) >= 0 ? 'u/'. request()->segment(2) : '' );
Route::get('/',function () {
if (Auth::guest()) {
return redirect()->route('login');
}
});
Route::get('u/{id}/login','Auth\LoginController@showLoginForm')->name('login');
Route::post('u/{id}/login','Auth\LoginController@login');
Route::post('u/{id}/logout','Auth\LoginController@logout')->name('logout');
/**
* The authorization routes.
*/
// Auth::routes();
Route::get('/u/{id}/{any?}','ApplicationController@index')->where('any','.*');
在我的session.php文件中,我有这个:
$user_type = '';
try {
$user_type = ( (int)request()->segment(2) >= 0 ? '_'. (int)request()->segment(2) : '' );
// $user_type = ( ( function_exists('request') && !empty(request()) && (int)request()->segment(2) ) >= 0 ? '_'. (int)request()->segment(2) : '');
} catch (\Exception $exception) {}
return [
'cookie' => env(
'SESSION_COOKIE',Str::slug(env('APP_NAME','laravel'),'_').'_session'. $user_type
),];
我的目标是让第一个用户的会话使用类似于session_0
的会话cookie,然后他们的URL将类似于example.com/u/0/some/page
。然后,如果他们想登录另一个帐户,我会将他们发送到example.com/u/1/login
之类的登录页面,它将创建一个session_1
会话。
我在这里有点不适应,所以我什至不知道这是否是最好的选择。
任何帮助将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。