Laravel 5.6 При нажатии на ссылку активации только перенаправление на домашнюю страницу

Я работаю над Laravel 5.6 активации электронной почты и забытого пароля. Я успешно отправил письмо после регистрации или нажал кнопку забытого пароля после ввода адреса электронной почты пользователя. Однако веб-сайт будет перенаправлять на домашнюю страницу (127.0.0.1:8000) вместо того, чтобы выполнять действие активации или сброса pw, как только пользователь щелкает ссылку активации в электронном письме и его учетная запись находится в состоянии входа в систему.

Пример здесь (активация по электронной почте):

Щелчок по ссылке (127.0.0.1:8000/register/activate/ {sometokenhere}) внутри письма активации приведет только к самой домашней странице (127.0.0.1:8000)


Внутри RegisterController.php,

...
protected function create(array $data)
{
    $user = User::create([
        'name'     => $data['name'],
        'email'    => $data['email'],
        'password' => bcrypt($data['password']),
        'activate'   => 0,
        'activation_token' => str_random(60),   
    ]);
    $user->notify(new SignupActivate($user));   
    return $user;
}

public function register(Request $request)
{
    $this->validator($request->all())->validate();
    $this->guard()->login($this->create($request->all()));
    return redirect()->to($this->redirectTo); //homepage
}

public function signupActivate($token)
{
    $user = User::where('activation_token', $token)->first();
    if (!$user) {
        return response()->json([
            'user' => $user,
            'token' => $token,
            'message' => 'This activation token is invalid.'
        ], 404);
    }
    $user->active = 1;
    $user->activation_token = '';
    $user->save();
    return $user;
}
...

Внутри Notification / RegistrationActivate.php,

...
public function via($notifiable)
{
    return ['mail'];
}

public function toMail($notifiable)
{
    $url = url('/register/activate/'.$notifiable->activation_token);

    $name = $this->user->name;
    $email = $this->user->email;
    return Mail::send('activate', ['name'=>$name, 'url'=>$url], function($message) use($email, $name){
    $message->to($email, $name)
        ->from('[email protected]', 'Admin')
        ->subject('Activate your account');            
    });
}
...

связанный маршрут,

Route::group(['namespace' => 'Auth'], function () {
    Route::get('/register/activate/{token}', 'RegisterController@signupActivate'); //added
 });

activate.blade.php,

Hi {{$name}},<br><br>
This email is a confirmation email.<br>
<a href = {{$url}} data-method = "delete">Activation link</a>

Я новичок в Laravel. Интересно, это проблема маршрутизации, проблема сеанса (?) Или что-то еще. Я не уверен, что объясняю свою ситуацию достаточно ясно или нет .. Я могу активировать учетную запись, только если учетная запись пользователя выйдет из системы (в результате щелчка по ссылке activatoin на экран будет возвращена строка json).

verynew 07.09.2018 07:00

Я просто прокомментирую эту строку внутри RedirectAuthenticated.php: if (Auth :: guard ($ guard) -> check ()) {// return redirect ('/'); } Вроде работает нормально, но есть ли риск сделать это таким образом?

verynew 07.09.2018 08:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
454
0

Другие вопросы по теме