1

Google CloudにLaravel 5.4が導入されましたか? {{ Session::token() }}または{{ csrf_token() }}を追加することに関係なく、VerifyCsrfToken.phpライン68 - 私はTokenMismatch例外を得続けるようGoogle CloudのLaravel 5.4 TokenMismatchException

私は助けを必要としています。

デバッグ後、ページ更新時に新しいページが1つロードされることを確認しました。tokenは変更を続ける+ セッションが削除される。 このように、私はここでPost deploy scripts

"post-deploy-cmd": [ 
"chmod -R 777 storage", 
"chmod -R 777 bootstrap\/cache", 
"php artisan cache:clear", 
"php artisan key:generate" 
] 

を追加したsession.phpファイル

<?php 

return [ 

/* 
|-------------------------------------------------------------------------- 
| Default Session Driver 
|-------------------------------------------------------------------------- 
| 
| This option controls the default session "driver" that will be used on 
| requests. By default, we will use the lightweight native driver but 
| you may specify any of the other wonderful drivers provided here. 
| 
| Supported: "file", "cookie", "database", "apc", 
|   "memcached", "redis", "array" 
| 
*/ 

'driver' => env('SESSION_DRIVER', 'file'), 

/* 
|-------------------------------------------------------------------------- 
| Session Lifetime 
|-------------------------------------------------------------------------- 
| 
| Here you may specify the number of minutes that you wish the session 
| to be allowed to remain idle before it expires. If you want them 
| to immediately expire on the browser closing, set that option. 
| 
*/ 

'lifetime' => 120, 

'expire_on_close' => false, 

/* 
|-------------------------------------------------------------------------- 
| Session Encryption 
|-------------------------------------------------------------------------- 
| 
| This option allows you to easily specify that all of your session data 
| should be encrypted before it is stored. All encryption will be run 
| automatically by Laravel and you can use the Session like normal. 
| 
*/ 

'encrypt' => false, 

/* 
|-------------------------------------------------------------------------- 
| Session File Location 
|-------------------------------------------------------------------------- 
| 
| When using the native session driver, we need a location where session 
| files may be stored. A default has been set for you but a different 
| location may be specified. This is only needed for file sessions. 
| 
*/ 

'files' => storage_path('framework/sessions'), 

/* 
|-------------------------------------------------------------------------- 
| Session Database Connection 
|-------------------------------------------------------------------------- 
| 
| When using the "database" or "redis" session drivers, you may specify a 
| connection that should be used to manage these sessions. This should 
| correspond to a connection in your database configuration options. 
| 
*/ 

'connection' => null, 

/* 
|-------------------------------------------------------------------------- 
| Session Database Table 
|-------------------------------------------------------------------------- 
| 
| When using the "database" session driver, you may specify the table we 
| should use to manage the sessions. Of course, a sensible default is 
| provided for you; however, you are free to change this as needed. 
| 
*/ 

'table' => 'sessions', 

/* 
|-------------------------------------------------------------------------- 
| Session Cache Store 
|-------------------------------------------------------------------------- 
| 
| When using the "apc" or "memcached" session drivers, you may specify a 
| cache store that should be used for these sessions. This value must 
| correspond with one of the application's configured cache stores. 
| 
*/ 

'store' => null, 

/* 
|-------------------------------------------------------------------------- 
| Session Sweeping Lottery 
|-------------------------------------------------------------------------- 
| 
| Some session drivers must manually sweep their storage location to get 
| rid of old sessions from storage. Here are the chances that it will 
| happen on a given request. By default, the odds are 2 out of 100. 
| 
*/ 

'lottery' => [2, 100], 

/* 
|-------------------------------------------------------------------------- 
| Session Cookie Name 
|-------------------------------------------------------------------------- 
| 
| Here you may change the name of the cookie used to identify a session 
| instance by ID. The name specified here will get used every time a 
| new session cookie is created by the framework for every driver. 
| 
*/ 

'cookie' => 'laravel_session', 

/* 
|-------------------------------------------------------------------------- 
| Session Cookie Path 
|-------------------------------------------------------------------------- 
| 
| The session cookie path determines the path for which the cookie will 
| be regarded as available. Typically, this will be the root path of 
| your application but you are free to change this when necessary. 
| 
*/ 

'path' => '/', 

/* 
|-------------------------------------------------------------------------- 
| Session Cookie Domain 
|-------------------------------------------------------------------------- 
| 
| Here you may change the domain of the cookie used to identify a session 
| in your application. This will determine which domains the cookie is 
| available to in your application. A sensible default has been set. 
| 
*/ 

'domain' => env('SESSION_DOMAIN', null), 

/* 
|-------------------------------------------------------------------------- 
| HTTPS Only Cookies 
|-------------------------------------------------------------------------- 
| 
| By setting this option to true, session cookies will only be sent back 
| to the server if the browser has a HTTPS connection. This will keep 
| the cookie from being sent to you if it can not be done securely. 
| 
*/ 

'secure' => env('SESSION_SECURE_COOKIE', false), 

/* 
|-------------------------------------------------------------------------- 
| HTTP Access Only 
|-------------------------------------------------------------------------- 
| 
| Setting this value to true will prevent JavaScript from accessing the 
| value of the cookie and the cookie will only be accessible through 
| the HTTP protocol. You are free to modify this option if needed. 
| 
*/ 

'http_only' => true, 

]; 

は、利用可能なすべてのオプションをしようとしましたが、それは助けていません。

TIA enter image description here enter image description here

は、EDIT 1

HTML

<meta name="csrf-token" content="{{ csrf_token() }}" /> 

AJAX

 submitButton: '#seller_contact button[type="submit"]', 
    submitHandler: function (validator, form, submitButton) { 

     $.ajax({ 
      type: 'POST', 
      headers: { 
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
      }, 
      url: '...', 
      data: $(form).serialize(), 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.status); 
       alert(xhr.message); 
       alert(xhr.messages); 
       console.log(xhr); 
       alert(thrownError); 
      }, 
      success: function (result) { 
       $("#premium-contact-form").html(result); 
      } 
     }); 
     return false; 
    }, 
+0

ちょうど興味がありません - あなたはクッキーセッションドライバをトライアルしましたか? –

+0

@AaronFahey申し訳ありませんが、私はそのことに気づいていません。もっと詳しく記述できますか? – silverFoxA

+1

'.env'' SESSION_DRIVER'セクションを変更し、 'cookie'と同じに設定してみてください。これは基本的にセッションをファイルシステムではなく暗号化されたクッキーに格納します。 –

答えて

0

cookieにご.envファイル内SESSION_DRIVERセクションを変更することで、クッキーのセッションドライバーを使用してみてください。これは、各ユーザのセッションを、ファイルシステムではなく、暗号化されたクッキーに保存します。

+0

上記のhttps://stackoverflow.com/a/42769727の解決策が私の問題を解決しました。 'file'' SESSION_DRIVER'がうまくいかなかった理由 – silverFoxA

0

_tokenフィールドIを送信するようにしてください[はAJAX呼び出しが追加されました] n要求;

let token = $('input[type=hidden]').val(); 
$.post('/...', {_token: token, ...}) 
    .done(function (result) { 
     $("#premium-contact-form").html(result); 
    }) 
    .error(function (xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(xhr.message); 
     alert(xhr.messages); 
     console.log(xhr); 
     alert(thrownError); 
    }); 
+0

' token '値が 'data: $(form).serialize() 'フォームのシリアル化 – silverFoxA

関連する問題