2016-10-05 17 views
5

Laravel 5.3 - Amacım giriş kontrolünü (AuthenticatesUsers özelliği) ajax üzerinden giriş formunu göndermek ve bir yanıt almak için (json iyi olurdu), böylece "dashboard'a yönlendirmeden önce zaman aşımı ayarlayabilirim" "bölüm (doğrulanmış). Önceden bazı şeyler için zaman aşımına ihtiyacım var. Yani yapılabilir mi? Eğer yapabilirse, ipucu yeterli olur. Şimdiden teşekkürler.avel login on Laravel timeout

JavaScript örneği:

$("#login-form").submit(function (e) { 

var url = "/login"; // the script where you handle the form input. 

$.ajax({ 
    type: "POST", 
    cache : false, 
    url: url, 
    data: $("#login-form").serialize(), // serializes the form's elements. 
    success: function() 
    {  //Do the timeout part, then redirect 
      topbar.addClass('success'); 
      form.addClass('goAway'); 
      article.addClass('active'); 
      tries = 0; 

    }, 
    error: function() { 
     location.reload(); 
     input.addClass('disabled'); 
     topbar.addClass('error'); 
    } 

});}); 

Girişi formu posta yoluyla gönderilir ve ben değil denetleyicisi aracılığıyla, başıma bir yönlendirme yapmak istiyorum ve benim asıl sorun yönlendirme değiştirecek JavaScript üzerinde csrf belirteci olduğunu.

düzenleme: Ben belirteç iç ajax kurulumu dahil olduğu keşfedildi başka şey:

$.ajaxSetup({ 
    headers: {'X-CSRF-TOKEN': _token} 
}); 

ve önlemek formu varsayılan eylem:

$("#login-form").submit(function (e) { 
     e.preventDefault(); 

İşte benim giriş formu var (bütün js ve css dahildir üst görünümde):

@extends('layouts.app') 

@section('content') 

<form class="form form-horizontal" id="login-form" role="form" method="POST" action="{{ url('/login') }}"> 
    {{ csrf_field() }} 
    <div class="forceColor"></div> 
    <div id="logosm_wrapper"> 
     <img id="logosm_login" src="img/ipism_100x50.png" alt="logo" > 
    </div> 
    <div class="forceColor"></div> 
    @if (count($errors)) 
    <div class="topbar error"> 
    @else 
    <div class="topbar"> 
    @endif 
     <div class="spanColor"></div> 
     <input id="email" type="email" class="input form-control" name="email" placeholder="E-mail" value="{{ old('email') }}"> 
    </div> 
    @if (count($errors)) 
    <div class="topbar error"> 
    @else 
     <div class="topbar"> 
    @endif 
     <div class="spanColor"></div> 
     <input id="password" type="password" class="input form-control" name="password" placeholder="Password"/> 
    </div> 
    <button class="submit" id="submit">Login</button> 
    <!--input class="submit" id="submit" type="submit" value="Login"--> 
</form> 
@endsection 

Bu amaç çalışıyor. Laravel Auth tarafından ed, niyetim JS aracılığı yetki yeşil dışarı girişi alanlarına, ve sonra ben u ajax bu eklemenizi tavsiye

+0

Baktığınız mı https://laracasts.com/discuss/channels/general-discussion/laravel-5-ajax-tokenmismatchexception –

+0

Evet, baktım, bu benim ana endişem değil, çünkü jetonu doğrulama özelliğini kapatabilirsiniz kurtulmak). Bu, kullanıcı –

+0

'un doğrulanmasından sonra tüm verileri kendi başınıza yeniden yönlendirebilir mi? Yeniden yönlendirme sonrasında csrf_token değişirse sorun nedir? –

cevap

0

... gösterge tablosuna kullanıcıyı yönlendirmek:

$.ajax({ 
    ....  
    async  : false, 
....