2016-07-17 3 views
0

URL에 invited_by이 있으면 http://streamkar.dev/store/?invited_by=1과 같은 링크에서 제공된 페이지에 가입 팝업을 표시합니다. 기본적으로 가입 팝업이 표시됩니다. 내가 원하는 무엇Laravel : JavaScript로 인증 확인

$(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

기본적으로 초대 링크는 누군가에게 줄 수 있습니다. 그/그녀가 이미 로그인 한 상태에서 페이지를 보여 주면 가입을위한 팝업을 표시 한 다음 URL의 페이지로 리디렉션합니다. 기본적으로 초대장입니다.

나는 그것을 어떻게 달성 할 수 있는가, 나는 적당한 논리를 생각해 내지 못하고있다. 컨트롤러 기능 상점에서 무엇 당신이 할 필요가

+0

귀하의 질문은 전적으로 자바 스크립트에 관한 ID로 사업부가있는 경우 javascript에서

@if (! $userLogged) <div id="login-modal"></div> //model html @endif 

modal을 보여,하지만 당신은 너무, PHP와 laravel와 태그. 왜 laravel에서 기본 제공 경로를 사용하는 대신 자바 스크립트를 사용하여 리디렉션합니까? –

답변

1

당신은 다음과 같은 것을 시도 할 수

인증되었는지 확인 사용자가 로그온 확인 및 쿼리 invited_by PARAM있다 , 그래서 store로 리디렉션하면 view가 렌더링됩니다. 사용자가 로그인하지 않은 경우 .blade 파일에서

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()); 
    } 
} 

modal HTML을 렌더링합니다. DOM은 login-modal

if(typeof b[1] !=="undefined" && $("#login-modal").length > 0){ 
    $("#login-modal").modal('show'); 
    $(".signin").click(); 
} 
+0

감사합니다 봉오리, 나는 질문을 가지고, 나는보기 기능을 많이 가지고, 어쨌든 하나의 기능이나 모든보기 기능에 사용할 수있는 다른 것을 만들 수 있습니까? – Gammer

+0

아, 간단히'blade' 파일에서'Auth :: check()'을 사용하거나'view composers'를 사용할 수 있습니다 https://laravel.com/docs/5.1/views#view-composers –

+0

완벽하게 작동합니다 ! – Gammer

0

은 사용자가 이미 controller에서

if (Auth::check()) { 
    return redirect()->to('store') 
}