我有以下网址代码,如果网址有invited_by
,则会在提供的页面上显示注册弹出窗口,如此http://streamkar.dev/store/?invited_by=1
链接,它基本上是为了显示注册弹出窗口。
$(document).ready(function(){
var a = window.location.href.toString();
var b = a.split("invited_by=");
if(typeof b[1] !=="undefined"){
console.log(b[1]);
$("#login-modal").modal('show');
$(".signin").click();
}
});
我想要的是我们如何检查用户身份验证,如果用户已经登录,那么:
显示:
http://streamkar.dev/store
而不是:
http://streamkar.dev/store/?invited_by=1
基本上可以将邀请链接发给某人,如果他/她已经登录,则只显示页面,如果没有,则显示注册弹出窗口,然后重定向到网址中的页面,基本上是邀请。
我怎样才能实现这一点,我没有想出一些合适的逻辑。
答案 0 :(得分:2)
您可以尝试下面的内容,
在controller
中,检查用户记录的AND查询是否有invited_by
参数,如果重定向到store
ELSE,则呈现view
。
public function getIndex(Request $request)
{
if (Auth::check() && $request->has('invited_by')) {
return redirect('/store');
} else {
return view('path_to_view')
->with('userLogged', Auth::check());
}
}
在.blade
文件中,如果用户未登录,则呈现modal
html。
@if (! $userLogged)
<div id="login-modal"></div> //model html
@endif
在javascript
中的,如果dom的div为modal
login-modal
if(typeof b[1] !=="undefined" && $("#login-modal").length > 0){
$("#login-modal").modal('show');
$(".signin").click();
}
答案 1 :(得分:0)
您需要做的是从Controller功能商店,检查用户是否已经过身份验证
if (Auth::check()) {
return redirect()->to('store')
}