2016-07-17 12 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

あなたの質問は完全にはJavaScriptについてですidのdiv要素を持っている場合javascript

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

は、modalを表示していますが、あまりにも、PHPとlaravelでそれをタグ付け。なぜlaravelの組み込みルートを使用するのではなく、javascriptでリダイレクトするのでしょうか? –

答えて

1

を認証された場合は、以下のような何かを試すことができcontroller

をチェックし、チェックユーザーがログに記録され、クエリが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

は、コントローラの機能ストアからで、ユーザが既に

if (Auth::check()) { 
    return redirect()->to('store') 
} 
関連する問題