为什么电子邮件验证没有链接可用

时间:2018-12-13 14:31:10

标签: laravel email verify

因此,验证在一定程度上有效。它发送电子邮件,但没有有效的链接可进行验证。

这是一个示例:

example

这是我来自控制器的代码:

protected function create(array $data)
{

    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);

    $verifyUser = VerifyUser::create([
        'user_id' => $user->id,
        'token' => str_random(40)
    ]);

    Mail::to($user->email)->send(new VerifyMail($user));

    return $user;
}
public function verifyUser($token)
{
    $verifyUser = VerifyUser::where('token', $token)->first();
    if(isset($verifyUser) ){
        $user = $verifyUser->user;
        if(!$user->verified) {
            $verifyUser->user->verified = 1;
            $verifyUser->user->save();
            $status = "Your e-mail is verified. You can now login.";
        }else{
            $status = "Your e-mail is already verified. You can now login.";
        }
    }else{
        return redirect('/login')->with('warning', "Sorry your email cannot be identified.");
    }

    return redirect('/login')->with('status', $status);
}
protected function registered(Request $request, $user)
{
    $this->guard()->logout();
    return redirect('/login')->with('status', 'We sent you an activation code. Check your email and click on the link to verify.');
}

这是从视图来看的:

    <!DOCTYPE html>
<html>
<head>
    <title>Welcome Email</title>
</head>

<body>
<h2>Welcome to the site {{$user['name']}}</h2>
<br/>
Your registered email-id is {{$user['email']}} , Please click on the below link to verify your email account
<br/>
<a href="{{route('verify.user', $user->verifyUser->token)}}">Verify Email</a>
</body>

</html>

用户类别:

    <?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */

    public function getRouteKeyName()
    {
        return 'name';
    }
    public function verifyUser()
    {
        return $this->hasOne('App\VerifyUser');
    }
}

对我来说,一切似乎都很好。它没有显示任何异常,但仍然无法正常工作。我收到了一封电子邮件,但无法验证。

0 个答案:

没有答案