簡體   English   中英

Laravel auth登錄超時

[英]Laravel timeout on auth login

Laravel 5.3-我的目標是通過ajax將登錄表單發送到登錄控制器(AuthenticatesUsers特質),並獲得響應(json可以),因此我可以設置超時,然后重定向到“儀表板”部分(已認證)。 我需要一些前端的超時時間。 這樣可以嗎? 如果可以的話,提示就足夠了。 提前致謝。

JavaScript示例:

$("#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');
    }

});});

登錄表單是通過帖子發送的,我想由我自己而不是通過控制器進行重定向,而我主要關心的是javascript重定向上的csrf令牌會更改。

編輯:我發現的另一件事是ajax安裝程序中包括令牌:

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

並防止表單默認操作:

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

這是我的登錄表單(所有js和CSS都包含在父視圖中):

@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

這按Laravel Auth的預期進行,我的意圖是通過JS清除授權上的輸入字段,然后將用戶重定向到儀表板...

我建議你在你的ajax中添加:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM