- Laravel auth
12
WT форуми -> PHP MySQL ASP.NET -> Laravel auth
Създайте нова тема Напишете отговор 
Автор Съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 25/03/2018 8:00 am     Laravel auth Отговорете с цитат


Здравейте, направих си default-овата register-login система в Laravel. Версията на фреймуорка е 5.5.28. Въпросът ми е как да я модифицирам да изпраща имейл до регистриралия се с линк за активация? В смисъл да не може да се логне преди да е активирал акаунта.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
pix3l
Нов
Нов

Регистриран на: 08/10/2016 4:31 pm

Support: 6
Bonus: 12
Мнения: 139
Мнение 25/03/2018 8:42 am      Отговорете с цитат


Как да не допускаш неактивен акаунт е документирано:
https://laravel.com/docs/5.6/authentication#authenticating-users

Относно линка за активация, аз бих се закачил за подходящият event:
https://laravel.com/docs/5.6/authentication#events
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 25/03/2018 9:01 am      Отговорете с цитат


Благодаря за отговора, обаче нямам никакъв опит с Laravel и нищо не можах да разбрера, освен че трябва да имам някакво поле в базата active, което е ясно. Ще помоля за по-подробно описание на стъпките, къде и какво трябва да добавя.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
pix3l
Нов
Нов

Регистриран на: 08/10/2016 4:31 pm

Support: 6
Bonus: 12
Мнения: 139
Мнение 25/03/2018 9:27 am      Отговорете с цитат


Аз също нямам опит с Laravel, за това го отговорът ми е толкова абстрактен... Very Happy
В общи линии, трябва да разбереш как се регистрират listener-и и да се закачиш за Registered. В listener-а, setActive(false), генерираш някакъв token и го запазваш при другите данни на юзъра, а после му пращаш мейл. Когато юзъра потвърди, setActive(true) и готово.
Виж, ако беше Symfony, щях и примерен код да ти напиша, но уви. Very Happy
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 25/03/2018 12:27 pm      Отговорете с цитат


Ето аз съм писала един блог пост за това:
http://blog.phakeapps.com/2017/12/12/email-confirmation-for-new-users-in-laravel-5/

Само ще добавя, че в твоя случай, когато логваш хората с Auth::attempt() трябва да подадеш и колонката, че само активирани:

Auth::attempt(['email' => $email, 'password' => $password, 'activation' => null])
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 25/03/2018 2:01 pm      Отговорете с цитат


Fakeheal написа:
Ето аз съм писала един блог пост за това:
http://blog.phakeapps.com/2017/12/12/email-confirmation-for-new-users-in-laravel-5/


Супер ще го прегледам Smile.

Fakeheal написа:
Само ще добавя, че в твоя случай, когато логваш хората с Auth::attempt() трябва да подадеш и колонката, че само активирани:

Auth::attempt(['email' => $email, 'password' => $password, 'activation' => null])


Такова нещо нямам. Това го има в документацията като пример.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 25/03/2018 4:44 pm      Отговорете с цитат


Имаш го в Auth\LoginController-a в трейта AuthenticatesUsers само трябва да override-неш метода, за да може да подаваш и третата колонка Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 26/03/2018 3:38 pm      Отговорете с цитат


A mailtrap ще ми свърши ли работа за да тествам дали работи активацията? Един вид има ли смисъл да си правя акаунт там?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 26/03/2018 4:26 pm      Отговорете с цитат


teroristd написа:
A mailtrap ще ми свърши ли работа за да тествам дали работи активацията? Един вид има ли смисъл да си правя акаунт там?

Принципно не, но е много удобно приложение, защото може да си тестваш всички мейли.

Например може да си направиш тестови потребители с мейли като:

test@test.com
test2@test.com
test3@test.com

и няма значение на кой от адресите по-горе пращаш мейл, всичко ще ти ходи на mailtrap.io акаунта.

Аз го намирам за удобно, като цяло може да постигнеш същото с gmail-ския си акаунт.

Ако мейла ти е terroristd@gmail.com:

terroristd+test1@gmail.com
terroristd+test2@gmail.com
terroristd+test3@gmail.com

Ще ги получаваш на terroristd@gmail.com, само че ще са адресирани до мейлите по-горе (за да ги различаваш).
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 26/03/2018 4:30 pm      Отговорете с цитат


Добре а за да тествам активацията какво ми трябва?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 26/03/2018 4:31 pm      Отговорете с цитат


teroristd написа:
Добре а за да тествам активацията какво ми трябва?


Да отвориш линка, който по принцип ще пращаш в мейла за активация?

Ако си следвал моя пост, в web.php (routes) сложи:
Route::get('/test', function() {
   $user = User::all()->first(); //или някой неактивиран User
   return redirect()->action('Auth\ActivateAccountController@activate', ['token' => $user->activation]));
});


Това ще те препрати на линка за потвърждение на акаунт.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 26/03/2018 4:34 pm      Отговорете с цитат


Да и да активирам акаунта. Все едно съм на хостинг.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
12
Страница 1 от 2


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети