我在Laravel 5.7电子邮件验证中遇到问题。
使用Laravel的电子邮件验证后,如果我没有登录,这将迫使我进入登录页面。
这是我们需要的: 我们启用用于用户电子邮件验证的代码。因此,当有人注册时,我们想验证用户电子邮件。我们希望用户在网站上进行注册,要求用户验证电子邮件地址,并且他们在进行验证之前不能做其他事情-这对我来说是可以的。
我们的麻烦是,如果有新用户(未注册)进入我们的网站,我们的网站也会强制所有该用户进入登录页面。
未注册的普通用户也将进入登录页面,并被迫验证或登录。
虽然我们希望唯一注册的用户需要验证。哪个在工作。
所有未订阅的普通用户都可以使用easy网站。他们目前将在哪里登录页面
到目前为止我所做的 添加了以下代码
class User extends Authenticatable implements MustVerifyEmail
Auth::routes(['verify' => true]);
Route::get('profile', function () { })->middleware('verified');
验证电子邮件后
protected $redirectTo = '/dashboard';
工作正常,但是
我需要的是我不想强迫用户验证电子邮件,因为这阻止了用户访问我网站的主页。
答案 0 :(得分:0)
尝试添加方法以外的内容,并检查网址首页
public function __construct()
{
$this->middleware(['auth', 'verified'])->except('home');
}
答案 1 :(得分:0)
问题是您需要指定哪些页面将使用身份验证中间件。排除您的欢迎视图。
在您的控制器文件中。
public function __construct()
{
$this->middleware('auth')->except('welcome');
}
public function home(){
return view('welcome');
}
我使用的是“欢迎”视图,因为我相信您不会更改默认的Laravel安装代码,因此必须小心,因为视图“ home”是laravel登录后显示的默认页面。删除该页面的身份验证层,任何用户都可以访问您的系统。您必须更改此页面的代码或创建另一个视图。
在您的web.php文件中
Route::get('/', 'HomeController@home');