Я использую Laravel 5 для создания пользовательских материалов с помощью Entrust для ролей пользователей и разрешений. У меня есть две роли, которые являются администраторами и пользователями. В основном, я хочу, чтобы у вас было два разных забытых пароля для электронной почты - один для пользователей и один для администраторов. Поэтому, когда пользователь вводит свой адрес электронной почты, чтобы получить ссылку на сброс, отправленную по электронной почте, мне нужно сначала проверить, какой пользователь он первым, а затем отправить им правильный шаблон. Я не хочу делать какие-либо хакерские вещи в стандартном шаблоне электронной почты, это должен быть способ сделать это в контроллере или что-то в этом уверенном смысле? Кто-нибудь знает, как я это сделаю?Laravel 5 забытый пароль состояние шаблона электронной почты
ответ
Вы можете, вероятно, побудит их войти в их электронную почту и, когда они подают вы можете захватить его в контроллере:
public function forgot()
{
$email = Input::get('email');
$user = User::where('email', $email)->first();
if($user->type == 'admin') {
// logic to email admin with admin template
} else {
// logic to email user with user template
}
// redirect to success page letting user know the email was sent
return View::make('someview');
}
Или еще лучше, просто передать тип пользователя для службы электронной почты, который обрабатывает электронной почтой:
public function forgot()
{
$email = Input::get('email');
$user = User::where('email', $email)->first();
$emailService->sendForgotForType($user->type);
// redirect to success page letting user know the email was sent
return View::make('someview');
}
Если вы используете Laravel 5 встроенных в Управление пользователями:
Чтобы переопределить defau lt, вам необходимо вручную установить $emailView
в PasswordBroker.php
, написав новый класс, который расширяет PasswordBroker
.
Например, закомментируйте 'Illuminate\Auth\Passwords\PasswordResetServiceProvider'
в конфиге/app.php
Затем создать класс расширения:
use Illuminate\Contracts\Auth\PasswordBroker;
use Illuminate\Contracts\Auth\CanResetPassword;
class MyPasswordBroker extends PasswordBroker {
// override
public function emailResetLink(CanResetPasswordContract $user, $token, Closure $callback = null)
{
// Override Logic to email reset link function perhaps using the example above?
}
}
Затем вам нужно будет связать свой новый MyPasswordBroker
класс к AppServiceProvider
в app/Providers/AppServiceProvider.php
в реестре метод (ниже найдено в Интернете):
$this->app->bind('App\Model\PasswordBroker', function($app) {
$key = $app['config']['app.key'];
$userToken = new \App\Model\NewUserToken;
$tokens = new \App\Repository\NewTokenRepository($key,$userToken);
$user = new \App\Model\NewUser;
$view = $app['config']['auth.password.email'];
return new \App\Model\PasswordBroker($tokens, $users, $app['mailer'], $view);
});
Определенно умеренно продвигается d, если вы справитесь с этим - отлично. В противном случае я, возможно, изучу использование пакета проверки подлинности со встроенными функциями, которые вам нужны.
- 1. Почему «забытый пароль» плохо?
- 2. CakePHP 2.4 Забытый пароль
- 3. Laravel 5: Отправка электронной почты
- 4. неверного адрес электронной почты/пароль сообщений Laravel 5
- 5. Laravel 5 Использовать стандартный вид в качестве шаблона электронной почты
- 6. отправка электронной почты в Laravel 5
- 7. Laravel 5 электронной почты для сброса пароля
- 8. Laravel 5.1 Как создать забытый пароль функции
- 9. Безопасность, утерянный или забытый пароль
- 10. Laravel 4 шаблон шаблона электронной почты
- 11. Laravel 5: Подпись электронной почты с DKIM
- 12. Laravel 5 missmatch лексема отправки электронной почты
- 13. Laravel 5 - Отправка электронной почты группы
- 14. Laravel 5 Amazon SES Ошибка электронной почты
- 15. Laravel 5: отправка электронной почты не работает
- 16. laravel-5 routing после активации электронной почты
- 17. Получение электронной почты пользователей - Laravel 5 PHP
- 18. Забытый пароль пользователя root
- 19. Внедрение функции «Забытый пароль»
- 20. Как обрабатывать забытый пароль формы через php?
- 21. Laravel 5 сбросить пароль
- 22. как установить динамическое состояние на основе забыл пароль электронной почты
- 23. Проверка шаблона электронной почты
- 24. Забытый/сброс пароль codeigniter issue
- 25. Как сбросить забытый пароль sa?
- 26. Использование bcrypt для паролей - забытый пароль email
- 27. Конфигурация электронной почты Laravel
- 28. Laravel: Пароль Проверка сброс электронной почты от пользователя
- 29. Simperium - Может ли пользователь восстановить забытый пароль ..?
- 30. отправка электронной почты в asp.net отправляет пароль вместо электронной почты
Но где контроллер, который обрабатывает это? – geoffs3310
Ну, вам нужно создать маршрут и контроллер, чтобы это сделать. доверять не все, что встроено. Похоже, вам, возможно, нужно немного почитать немного Laravel? –
Спасибо за попытку помочь, но я думаю, что вы неправильно поняли вопрос. Забытый материал паролей не имеет никакого отношения к тому, чтобы доверять ему встроенный пользовательский материал, с которым связан laravel. Скажем, например, я не пользовался доверием, и я просто хотел выбрать шаблон случайным образом из одного из двух, когда пользователь сбрасывает свой пароль, где бы я поставил логику, и это то, о чем я действительно спрашиваю. – geoffs3310