Laravel Nova Проверка электронной почты - PullRequest
0 голосов
/ 07 сентября 2018

Я использую Nova в качестве бэкэнда для приложения SAAS, поэтому в основном на app.mydoain.com просто появляется форма входа в систему Nova. Я хочу Laravel 5.7 Проверка электронной почты, который стандартно используется для этого (поэтому, когда я добавляю пользователя, он должен проверить электронную почту, прежде чем сможет войти).

В config / nova.php я добавил промежуточное ПО:

 'middleware' => [
        'verified',
        'web',
        Authenticate::class,
        DispatchServingNovaEvent::class,
        BootTools::class,
        Authorize::class,
    ],

В модели User.php я реализовал это (что сделано не так, как в документации по webiste?)

<?php

namespace App;

use Illuminate\Auth\MustVerifyEmail;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Contracts\Auth\MustVerifyEmail as MustVerifyEmailContract;

class User extends Authenticatable implements MustVerifyEmailContract
{
    use MustVerifyEmail, Notifiable;

....

Я добавил несколько маршрутов в web.php только для проверки (никакой другой аутентификации не требуется)

Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}', 'Auth\VerificationController@verify')->name('verification.verify');
Route::get('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');

После того, как я войду в систему, он просто остановится и перейдет на /email/verify или /. В моей базе данных я уже добавил временную метку, поэтому она вообще не должна идти к /email/verify, а когда она идет к /, это время ожидания.

Если я удаляю verified из промежуточного программного обеспечения в конфигурации, он работает нормально, но не проверяется проверка электронной почты.

1 Ответ

0 голосов
/ 04 февраля 2019

Изменить порядок промежуточного программного обеспечения.

'middleware' => [
        'web',
        Authenticate::class,
        'verified',
        DispatchServingNovaEvent::class,
        BootTools::class,
        Authorize::class,
    ],

Ваш запрос должен сначала пройти через Интернет. Скорее всего, вы получаете тайм-аут из-за цикла перенаправления.

...