Rumah > Soal Jawab > teks badan
Saya mempunyai API bahagian belakang dengan Sanctum dalam Laravel dan SPA repositori berasingan dalam NuxtJS
Saya cuba mengesahkan SPA saya dengan Sanctum. Saya cuba mengikuti dokumentasi Sanctum untuk mendapatkan kuki CSRF dalam penyemak imbas.
Masalahnya ialah apabila saya menghubungi titik akhir token CSRF yang disediakan oleh Sanctum, saya mendapat respons yang betul, tetapi kuki tidak ditetapkan. Itu sahaja, tiada kesilapan. Tidak kira sama ada saya mahu menggunakan nuxt auth atau hanya panggilan axios lama yang biasa.
Ini yang saya ada:
Nama domain: API-publisher.local:8080; front-end-publisher.local:3000
Konfigurasi Pengesahan NUXT
auth: { strategies: { laravelSanctum: { provider: 'laravel/sanctum', url: 'http://publisher.local:8080', endpoints: { login: { url: '/api/v1/login', method: 'post' }, // logout: { url: '/auth/logout', method: 'post' }, // user: { url: '/auth/user', method: 'get' } } }, }, },
Konfigurasi AXIOS
axios: { baseURL: 'http://publisher.local:8080/api/v1', // Used as fallback if no runtime config is provided credentials: true, proxy: true, },
suci.php
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( '%s%s', 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1,local:3000', Sanctum::currentApplicationUrlWithPort() ))),
session.php
'domain' => env('SESSION_DOMAIN', '.local'),
Saya mencuba kombinasi dan variasi yang berbeza bagi tetapan ini tetapi tiada apa yang berhasil. Adakah anda tahu apa yang boleh berlaku?
P粉3115638232023-12-14 00:56:05
Saya rasa saya sudah faham perkara ini. Saya membuat ia berfungsi.
Oleh itu .local
tidak boleh menjadi domain peringkat atas, saya rasa itu mungkin sebahagian daripada masalah, tetapi saya tidak pasti.
Menukar nama domain kepada yang lama localhost
boleh menyelesaikan masalah, tetapi ada masalah dengan penyelesaian ini. Atas sebab tertentu saya tidak tahu, saya secara automatik mendapat kuki XSRF pada sebarang panggilan ke API, tidak kira titik akhir yang saya panggil. keanehan.
Cara paling berkesan ialah menukar nama domain kepada api.publisher.com
和 publisher.com
dan kemudian menukar semua tetapan dalam dokumen Sanctum.
Berhati-hati dengan nama domain, pastikan ia sepadan dan disediakan dengan betul. Sangat mudah untuk mengkonfigurasi semula perkara itu, tetapi sukar untuk mendiagnosisnya!
Semoga ini membantu!