Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyłączenie automatycznego logowania po rejestracji w Laravelu 5.8
northwest
post 9.05.2019, 12:22:25
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie.
Od. paru dni uczę się Laravela i napotkałem na mały problem. Korzystam z wbudowanej w Laravela funkcji rejestracji i logowania.
Po zarejestrowaniu nowego użytkownika mam opcję wymagania aktywacji maila (na mail użytkownika wysyłany jest link aktywacyjny). To działa poprawnie.

Problemem jest dla mnie to, że po zarejestrowaniu użytkownik jest od razu logowany. Chciałbym żeby użytkownik do czasu aktywacji maila nie mógł się zalogować.

W jaki sposób mogę to zrobić?
Go to the top of the page
+Quote Post
ostrylg
post 9.05.2019, 14:04:05
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 18
Dołączył: 11.12.2005
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Klasa RegisterController korzysta z Traita RegistersUsers, tam jest funkcja register() która zawiera:

  1. public function register(Request $request)
  2. {
  3. $this->validator($request->all())->validate();
  4.  
  5. event(new Registered($user = $this->create($request->all())));
  6.  
  7. $this->guard()->login($user);
  8.  
  9. return $this->registered($request, $user)
  10. ?: redirect($this->redirectPath());
  11. }


Linia kodu

  1. $this->guard()->login($user);


jest odpowiedzialna za logowanie po rejestracji

Nadpisz tą funkcję bez tej linijki i powinno być OK.
Go to the top of the page
+Quote Post
northwest
post 10.05.2019, 11:07:48
Post #3





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Dziękuje bardzo smile.gif
A w jaki sposób zablokować możliwość zalogowania użytkownika bez weryfikacji wcześniejszej (kliknięcia linka z maila)?

Mam taki web.php:
  1. Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () {
  2. Route::get('/', 'BackendController@index')->name('adminHome')->middleware('verified');
  3. Route::get('/myObjects', 'BackendController@myObjects')->name('myObjects')->middleware('verified');
  4. Route::get('/saveObject', 'BackendController@saveObject')->name('saveObject')->middleware('verified');
  5. Route::get('/profile', 'BackendController@profile')->name('profile')->middleware('verified');
  6. Route::get('/saveRoom', 'BackendController@saveRoom')->name('saveRoom')->middleware('verified');
  7. Route::get('/cities', 'BackendController@cities')->name('cities.index')->middleware('verified');
  8. });
  9.  
  10.  
  11. Auth::routes(['verify' => true]);
  12.  



Pomimo iż użytkownik ma niezweryfikowany email (pusta kolumna email_verified_at w bazie) - to mogę się na takie konto zalogować sad.gif
Go to the top of the page
+Quote Post
Pyton_000
post 10.05.2019, 13:45:11
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Przeczytaj jeszcze 2x https://laravel.com/docs/5.8/verification#v...ication-routing
Go to the top of the page
+Quote Post
northwest
post 10.05.2019, 13:48:16
Post #5





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


kurczę, chyba nie wiem co skopałem sad.gif
Go to the top of the page
+Quote Post
Pyton_000
post 10.05.2019, 13:54:48
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


To co dodałeś ma iść do kontrolera, a jeśli chcesz w routingu to masz dodać middleware jak na drugim przykładzie

Ten post edytował Pyton_000 10.05.2019, 13:55:00
Go to the top of the page
+Quote Post
northwest
post 10.05.2019, 13:59:23
Post #7





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Tak, chciałbym mieć to oznaczane z poziomu routingu.


czyli nie mogę tego zrobić w taki sposób:

  1. Route::get('/cities', 'BackendController@cities')->name('cities.index')->middleware('verified');

?
Go to the top of the page
+Quote Post
Pyton_000
post 10.05.2019, 14:14:21
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


a sprawdziłeś?
Go to the top of the page
+Quote Post
northwest
post 10.05.2019, 14:15:21
Post #9





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


nie działa sad.gif tylko nie łapię dlaczego:/ jest to dodane do węzła w routingu to powinno działać?
Go to the top of the page
+Quote Post
Pyton_000
post 10.05.2019, 16:52:34
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A masz zaimplementowany interface

Kod
Illuminate\Contracts\Auth\MustVerifyEmail


dla User?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 15:33