• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Udostępnienie API post requestów bez logowania, CORS

42 Warsaw Coding Academy
0 głosów
279 wizyt
pytanie zadane 8 sierpnia 2019 w PHP przez kordix Gaduła (3,910 p.)
Cześć

Powiedzmy że mam API zrobione w Laravelu i stronę w Wordpressie. Chciałbym mieć dostęp do tego API.

JWT token z tego co widzę opiera się na sesji logowania, a ja chciałbym po prostu udostępnić API dla danej strony, bez żadnego logowania.

Ktoś z was borykał się z podobnym problemem?
1
komentarz 8 sierpnia 2019 przez BT101 Stary wyjadacz (12,540 p.)
Ale jakim problemem? Musisz odpowiednie headery dodać
komentarz 8 sierpnia 2019 przez kordix Gaduła (3,910 p.)

W Laravelu to się odbywa bodajże w tym kodzie

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

if (token) {
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

Jednak sam csrf token jest generowany przez samego Laravela, a jak go uzyskać w zewnętrznej aplikacji?

komentarz 8 sierpnia 2019 przez kordix Gaduła (3,910 p.)
Dziwne, problem był prawdopodobnie z tym że odpalałem wszystko na localhost, jak mam stronę na domenie to nie krzyczy ani o CORS ani o CSRF. Też dziwne
komentarz 14 sierpnia 2019 przez kordix Gaduła (3,910 p.)
Dla potomnych: używajcie http://localhost zamiast localhost dla adresu api

1 odpowiedź

0 głosów
odpowiedź 10 sierpnia 2019 przez Wraith Gaduła (4,370 p.)

To proste. Stworz w laravel kontroler

MojController.php i w pliku zrob jakies sobie metody

w route web.php dodaj publiczny route bez middeleware auth 

// public 
Route::group(['prefix' => 'abc'], function () {
    Route::match(['get', 'post'], 'moja-metoda', 'MojController@mojaMetoda')->name('abc.mojaMetoda');
});

wejdz do katalogu Middleware i wpliku VerifyCsrfToken.php dodaj na dole. dzieki temu jak wyslesz cos POSTEM nie bedzie wymagane kod CRSF ja to uzywam do callback jak platnosci na stronie mam i callback idzie od nich to wlasnie tak robilem

   protected $except = [
        'abc/*',
    ];

teraz jak wywoalasz GET lub POST mojadomena.com/moja-metoda to dostaneisz zwrotke z tego co chcesz bez logowania

Podobne pytania

+1 głos
0 odpowiedzi 594 wizyt
pytanie zadane 29 kwietnia 2020 w JavaScript przez Rafixstan. Obywatel (1,070 p.)
0 głosów
1 odpowiedź 216 wizyt
pytanie zadane 7 stycznia 2020 w JavaScript przez saseta00 Użytkownik (700 p.)

93,382 zapytań

142,382 odpowiedzi

322,540 komentarzy

62,738 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...