복붙노트

"페이지가 비활성으로 인해 만료되었습니다."- Laravel 5.5

PHP

"페이지가 비활성으로 인해 만료되었습니다."- Laravel 5.5

내 등록 페이지에서 양식에있는 CsrfToken ({{csrf_field ()}})을 사용하여 양식을 올바르게 표시하고 있습니다.

양식 HTML

<form class="form-horizontal registration-form" novalidate method="POST" action="{{ route('register') }}">
        {{ csrf_field() }}
        ....
</form>

나는 사용자를 위해 inbuilt 인증을 사용하고있다. 경로와 리디렉션을 제외하고는 아무 것도 변경하지 않았습니다.

양식을 제출하면 (다시로드 한 직후) 페이지가 비활성으로 인해 만료되었습니다. 새로 고침하고 다시 시도하십시오. 오류.

나는 아주 작은 것을 놓치고있다. 그러나 그것이 무엇인지는 확실하지 않습니다. 어떤 도움이 필요합니까?

최신 정보

문제를 찾았습니다. 세션 드라이버가 배열로 설정되었습니다. 파일로 변경하고 오류가 사라졌습니다. 배열을 사용하면 무엇이 잘못됩니까?

해결법

  1. ==============================

    1.검색에서 직접이 답변을 얻으려면 op와 같이 {{csrf_field ()}}와 함께 양식에 csrf 토큰을 이미 추가했는지 확인하십시오.

    검색에서 직접이 답변을 얻으려면 op와 같이 {{csrf_field ()}}와 함께 양식에 csrf 토큰을 이미 추가했는지 확인하십시오.

    세션 드라이버를 파일로 설정 한 경우 :

    쓰기가 불가능한 storage_path와 관련이있을 수 있습니다. 이것은 파일 기반 세션을 사용하는 경우 토큰에 관한 세션 데이터를 저장하는 곳입니다. is_writable (config ( 'session.files'))로 확인할 수 있습니다.

    OP의 경우 세션 드라이버가 배열로 설정되었습니다. 배열은 테스트 용입니다. 데이터가 지속되지 않으므로 다음 요청에서 토큰을 비교할 수 없습니다.

    https://laravel.com/docs/5.5/session#configuration

    config / sessions.php를 확인하십시오.

    마지막으로 내가 방금 겪었던 문제는 config / session.php에 세션 도메인과 보안 설정이 있지만 개발 사이트에서 HTTPS (SSL / TLS)를 사용하지 않는 프로젝트입니다. session.secure가 기본적으로 true로 설정되었으므로이 일반 오류가 발생했습니다.

  2. ==============================

    2.Laravel 5.5에서도 같은 문제가 발생했습니다. 제 경우에는 GET에서 POST로 경로를 변경 한 후에 발생했습니다. POST로 전환 할 때 CSRF 토큰을 전달하는 것을 잊었 기 때문에 문제가 발생했습니다.

    Laravel 5.5에서도 같은 문제가 발생했습니다. 제 경우에는 GET에서 POST로 경로를 변경 한 후에 발생했습니다. POST로 전환 할 때 CSRF 토큰을 전달하는 것을 잊었 기 때문에 문제가 발생했습니다.

    다음을 호출하여 CSRF 토큰을 양식에 게시 할 수 있습니다.

     {{ csrf_field() }}
    

    또는 앱 / Http / Middleware / VerifyCsrfToken.php에서 경로 제외

     protected $except = [
            'your/route'
        ];
    
  3. ==============================

    3.모두 시도해보십시오.

    모두 시도해보십시오.

    composer dump-autoload
    php artisan optimize
    php artisan cache:clear
    php artisan config:clear
    php artisan route:clear
    php artisan view:clear
    
  4. ==============================

    4.이것은 Illuminate \ Session \ TokenMismatchException 때문에 발생합니다. 이 코드 샘플을 올바르게 처리하는 방법을 살펴보십시오.

    이것은 Illuminate \ Session \ TokenMismatchException 때문에 발생합니다. 이 코드 샘플을 올바르게 처리하는 방법을 살펴보십시오.

  5. ==============================

    5.일부 정보는 개발중인 laravel의 이전 버전과 관련된 쿠키에 저장됩니다. 따라서 다른 버전에서 생성 된 csrf 생성 토큰과 충돌합니다. 쿠키를 지우고 시도하십시오.

    일부 정보는 개발중인 laravel의 이전 버전과 관련된 쿠키에 저장됩니다. 따라서 다른 버전에서 생성 된 csrf 생성 토큰과 충돌합니다. 쿠키를 지우고 시도하십시오.

  6. ==============================

    6.내 사건은 SESSION_DOMAIN으로 해결되었으며 로컬 컴퓨터에서는 xxx.localhost로 설정해야했습니다. session.php 설정 파일에서 직접 설정 한 SESSION_DOMAIN, xxx.com 프로덕션과 충돌이 발생했습니다.

    내 사건은 SESSION_DOMAIN으로 해결되었으며 로컬 컴퓨터에서는 xxx.localhost로 설정해야했습니다. session.php 설정 파일에서 직접 설정 한 SESSION_DOMAIN, xxx.com 프로덕션과 충돌이 발생했습니다.

  7. ==============================

    7.여전히 문제가 있고 도움이되지 않은 사람들에게. php.ini mbstring.func_overload 매개 변수에주의하십시오. 이 값은 0으로 설정해야합니다. mbstring.internal_encoding은 UTF-8로 설정됩니다. 제 경우에는 그게 문제였습니다.

    여전히 문제가 있고 도움이되지 않은 사람들에게. php.ini mbstring.func_overload 매개 변수에주의하십시오. 이 값은 0으로 설정해야합니다. mbstring.internal_encoding은 UTF-8로 설정됩니다. 제 경우에는 그게 문제였습니다.

  8. ==============================

    8.저장 권한을 변경하고 오류가 사라졌습니다. 허가가 부족한 것 같습니다.

    저장 권한을 변경하고 오류가 사라졌습니다. 허가가 부족한 것 같습니다.

    sudo chmod -R 775 storage/
    
  9. ==============================

    9.나는 여러 하위 도메인과 애플 리케이션을 가지고 세션 쿠키는 그 사이에 문제가됐다. 쿠키를 지우면 내 문제가 해결되었습니다.

    나는 여러 하위 도메인과 애플 리케이션을 가지고 세션 쿠키는 그 사이에 문제가됐다. 쿠키를 지우면 내 문제가 해결되었습니다.

    또한 .env 파일에서 SESSION_DOMAIN을 설정하십시오. 탐색중인 정확한 하위 도메인을 사용하십시오.

  10. ==============================

    10.제 경우에는 사이트가 서버에는 좋았지 만 로컬에는 없었습니다. 그런 다음 보안 웹 사이트에서 작업하고 있었던 것을 기억합니다. 그래서 config.session.php 파일에서 변수 secure를 false로 설정하십시오.

    제 경우에는 사이트가 서버에는 좋았지 만 로컬에는 없었습니다. 그런 다음 보안 웹 사이트에서 작업하고 있었던 것을 기억합니다. 그래서 config.session.php 파일에서 변수 secure를 false로 설정하십시오.

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

    11.웹 서버에 올바른 시스템 시간을 보유하고 있는지 확인하십시오. 저의 경우에, 유모 기계는 미래에있었습니다 (Jan 26 14:08:26 UTC 2226). 물론 브라우저의 세션 쿠키에있는 시간은 약 200 년 이상 만료되었습니다.

    웹 서버에 올바른 시스템 시간을 보유하고 있는지 확인하십시오. 저의 경우에, 유모 기계는 미래에있었습니다 (Jan 26 14:08:26 UTC 2226). 물론 브라우저의 세션 쿠키에있는 시간은 약 200 년 이상 만료되었습니다.

  12. ==============================

    12.mbstring.func_overload = 2 설정

    mbstring.func_overload = 2 설정

    그것은 나를 도왔다.

  13. ==============================

    13.나는이 오류를 피하기 위해 두 가지 해결책을 알아 냈다. 1) 보호를 추가하여 $ except = [ '/ yourroute'] 가능 csrf 토큰 검사를 정의 된 루트에서 비활성화하십시오. 2) 커널의 보호 된 미들웨어 그룹에있는 \ App \ Http \ Middleware \ VerifyCsrfToken :: class 행을 주석 처리하십시오.

    나는이 오류를 피하기 위해 두 가지 해결책을 알아 냈다. 1) 보호를 추가하여 $ except = [ '/ yourroute'] 가능 csrf 토큰 검사를 정의 된 루트에서 비활성화하십시오. 2) 커널의 보호 된 미들웨어 그룹에있는 \ App \ Http \ Middleware \ VerifyCsrfToken :: class 행을 주석 처리하십시오.

  14. ==============================

    14.파일 유형이 있어야합니다. laravel의 FileName.blade.php Ruby와 Rails의 FileName.erb.rb

    파일 유형이 있어야합니다. laravel의 FileName.blade.php Ruby와 Rails의 FileName.erb.rb

    어느 하나를 추가하다

  15. from https://stackoverflow.com/questions/46141705/the-page-has-expired-due-to-inactivity-laravel-5-5 by cc-by-sa and MIT license