Cara membuat laravel berfungsi, sesi vue csrf

Formulir Laravel memerlukan csrf agar berfungsi

Jika saya membuat spa, aplikasi satu halaman, dengan vue+laravel sehingga template laravel saya hanya berisi html dan isi kosong, dan pengguna tidak benar-benar me-refresh halaman sama sekali selama berjam-jam bekerja dengan aplikasi, (halaman tidak di-refresh karena semuanya dengan ajax)

Bagaimana caranya agar sesi login tetap hidup? Bagaimana cara agar csrf berfungsi? Atau bisakah saya menonaktifkannya? Aplikasi tidak melakukan apa pun tanpa login terlebih dahulu.


person gray_15    schedule 22.01.2020    source sumber
comment
stackoverflow.com/questions/37806762/   -  person first    schedule 22.01.2020
comment
github.com/laravel/airlock   -  person Jerodev    schedule 22.01.2020


Jawaban (1)


Jika Anda menggunakan axios dengan Vue2 untuk permintaan ajax Anda, csrf sudah tersedia di bootstrap.js, Anda bisa melihat baris ini di sana

let token = document.head.querySelector('meta[name="csrf-token"]');

Jika Anda ingin bersikeras hanya untuk ajax Anda, maka Anda akan meletakkan baris ini di hook terpasang Anda.

mounted() {
    this.csrfToken = document.querySelector('meta[name="csrf-token"]').content
},

csrfToken ini harus dilampirkan di formulir Anda seperti ini

<form :method="method.toUpperCase() == 'GET' ? 'GET' : 'POST'">
    <input-hidden :value="csrfToken" name="_token"/>

    <input-hidden
        v-if="['GET', 'POST'].indexOf(method.toUpperCase()) === -1"
        :value="method"
        name="_method"
    />

    <!--
        This hidden submit button accomplishes 2 things:
            1: Allows the user to hit "enter" while an input field is focused to submit the form.
            2: Allows a mobile user to hit "Go" in the on-screen keyboard to submit the form.
    -->
    <input type="submit" class="absolute invisible z-0">

    <slot/>
</form>

untuk contoh yang baik tentang hal itu. lihat ini token csrf

Catatan: Harap jangan menonaktifkan token csrf karena ini hanya cara Anda mengamankan permintaan Anda ke server.

person Qonvex620    schedule 22.01.2020
comment
Jika aplikasi vuea saya berupa satu halaman, dan halaman tersebut benar-benar tidak pernah disegarkan, apakah saya memerlukannya dan jika ya, bagaimana cara memperbarui csrfToken baru ke dalam formulir saya? - person gray_15; 23.01.2020