[inny][Symfony2] Laravel: Odebranie danych z metody GET - rounting |
[inny][Symfony2] Laravel: Odebranie danych z metody GET - rounting |
7.05.2019, 21:59:18
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Cześć.
Implementuję na stronie szybkie płatności Cashbill. Przy prawidłowym wykonaniu przelewu system cashbill wysyła do mnie dane metodą GET https://moj-adres.pl/platnosci?service=strona_startowa.pl&orderid=TEST_abrazcdo&amount=70&userdata=YToxOntzOjc6InVzZXJfaWQiO2k6Mjt9&status=ok&sign=16111498e098cd3a66e0d88eacc4ae2e Aktualnie laravel wywala błąd że nie ma takiego routingu. Jak przygotować routing aby odebrać powyższe dane? -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
7.05.2019, 22:14:48
Post
#2
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
moim zdaniem wystarczy Route::get('/platnosci',...
Ten post edytował LowiczakPL 7.05.2019, 22:15:03 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
8.05.2019, 16:25:07
Post
#3
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Dałem sobie routes:
Otrzymuję komunikat:
Mam dać tylko zwykły route jak poniżej?
Ok, jestem w domu. Dziękuję za pomoc A jednak nie jestem w domu... Usera przekierowuję poprawnie, natomiast płatność cashbill potwierdza przesłaniem danych niejawnie kanałem serwer-serwer
Tam wstawiłem adres URL: https://www.mojastrona.pl/endPay/ Rout: Route::get('/endPay', ['as' => 'autoryzacja', 'uses' => 'UserController@endPay']); Ale w odpowiedzi otrzymuję komunikat:
Jak ustawić routing serwer-serwer? Ten post edytował miccom 8.05.2019, 16:25:44 -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 16:30:31
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
A czy ten serwis z platnosciami nie sle ci przypadkiem tych danych POSTem? Bo ty niestety ustawiles route dla GETa
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
8.05.2019, 16:35:10
Post
#5
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Tak nosporze, ale czy odbierając dane metodą POST muszę mieć potwierdzenie formularza przez podpis CSRF?
Jeśli dam ten routing na post
otrzymuję ten sam komunikat -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 16:35:11
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Nawet jest to jasno opisane w tym kawałku zacytowanym.
-------------------- |
|
|
8.05.2019, 16:38:25
Post
#7
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Tak vikingu, natomiast zmiana routa nie pomaga, zapewne CSRF przeszkadza i automatycznie blokuje to połączenie serwerowe
-------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 16:56:54
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Nie znam laravela ale nie rozumiem czemu CSRF mialby tutaj cokolwiek do gadania. Jesli tak jest, to poszukaj w dokumetnacji jak to wylaczyc.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
8.05.2019, 17:01:29
Post
#9
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Wg instrukcji mozna poszczególne routy wyizolować aby nie wymagały csrf,
app/Middleware/VerifyCsrfToken.php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ // '/endPay', ]; } Tam wrzuciłem rout który ma być poza csrf, ale nadal ten sam błąd ;/ -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 17:02:01
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
CSRF można wyłączyć dla konkretnego URL w middleware.
|
|
|
8.05.2019, 17:16:04
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Zresztą csrf zwraca error bodajże 419 albo 420. Jeśli masz dalej błąd routingu to coś jeszcze jest nie tak. Może cache. Ściągnij sobie program insomnia i testuj.
-------------------- |
|
|
8.05.2019, 19:22:24
Post
#12
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Mój routing to:
userController.php
Jeśli wyświetlę sobie adres w insomnia to otwiera mi się strona główna z informacją, że muszę być zalogowany, aby widzieć tą stronę, co mam zmienić? Jedno pytanie...Dlaczego zamiast pokazać białą stronę z tekstem "działa" odsyła do strony głównej? -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 19:25:06
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Jaka wersja lv? Zależy co zrobiłeś w middlewareach i autoryzacji w aplikacji. Możesz wyłączyć sprawdzanie per route.
-------------------- |
|
|
8.05.2019, 19:33:40
Post
#14
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
laravel 5.2
W Authenticate mam tak: public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->guest()) { if ($request->ajax() || $request->wantsJson()) { return response('Unauthorized.', 401); } else { return redirect()->guest('/')->withErrors(['email'=>'Aby zobaczyć tą stronę musisz się zalogować']); } } return $next($request); } -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 19:41:56
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Cytat Dlaczego zamiast pokazać białą stronę z tekstem "działa" odsyła do strony głównej? Bo robisz przekierowanie do glownej? O tu: return redirect()->guest('/')->withErrors(['email'=>'Aby zobaczyć tą stronę musisz się zalogować']); -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
8.05.2019, 20:13:53
Post
#16
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Powyższy kod z Authenticate to prawie oryginał laravel 5.2 master
Ok, więc rozkminiłem Na początku kontrolera UserControler mam: public function __construct() { $this->middleware('auth'); } Czyli z wszystkich funkcji sprawdzane jest, czy user jest zalogowany Funkcję endPay wrzuciłem do UserControler, i własnie middleware blokowało wszystko Przeniosłem funkcję endPay do innego kontrolera ( który nie sprawdza autoryzacji ) i działa pięknie ładnie. Dziękuję wszystkim za udział w rozwiązaniu mojego problemu. Pozdrawiam. Ten post edytował miccom 8.05.2019, 20:02:15 -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 20:30:25
Post
#17
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
Systemy płatności nie mogą mieć autoryzowanego adresy, to musi być publiczny adres be żadnej autoryzacji czyli jako gość.
Route::group(['middleware' => ['auth']], function () { //tylko autoryzowani użytkownicy mogą uzyskać dostęp do tych tras }); Route::group(['middleware' => ['guest']], function () { //kazdy ma do tego dostęp i tu robisz jakisz tajny adres do przyjmowania odpowiedzi }); Ten post edytował LowiczakPL 8.05.2019, 20:32:21 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
8.05.2019, 20:36:09
Post
#18
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Ok, a jak mam jedną trasę dla gości i dla zalogowanych?
Mam ją dodać do obu grup? -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
8.05.2019, 20:45:24
Post
#19
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
zalogowany może przecież chodzić wszędzie ale nie zalogowany już nie powinien, to zależy co masz pod tym adresem, czy wrażliwe dane czy publiczne
rozdziel to na grypy ważności, publiczne i prywatne po autoryzacji no chyba że masz jeszcze grypu zalogowanych osób, to do tego są role użytkowników -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
8.05.2019, 20:49:08
Post
#20
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Ok, dziękuję za pomoc
-------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 04:18 |