با عرض سلام ، من ایمیل ارسال میشه اما ، لینکی که متصل به کلید لاگین می باشد که در ایمیل ارسال شده وقتی کلیک میشود ، خطای 404 نمایش داده میشود . لطفا راهنمایی بفرمایید چطور میتونم مشکل رو برطرف کنم ، حتی متدی که Route رو اجرا میکنه تغییر دادم ، وقتی اجرا میکنم باز 404 میده
با تشکر
MagicController :
public function login(LoginToken $token)
{
return $this->auth->authenticate($token) === $this->auth::AUTHENTICATED
? redirect()->route('home')
: redirect()->route('auth.magic.login.form')->with('invalidToken',true);
}
-----------------------------------------
<?php
namespace App\Models;
use App\Jobs\SendEmail;
use App\Mail\SendMagicLink;
use App\User;
use Illuminate\Database\Eloquent\Model;
class LoginToken extends Model
{
const TOKEN_EXPIRE = 120; // in seconds
protected $fillable = [
'token'
];
public function user()
{
return $this->belongsTo(User::class);
}
public function send(array $options)
{
SendEmail::dispatchNow($this->user, new SendMagicLink($this , $options));
}
public function isExpired()
{
return $this->created_at->diffInSeconds(now()) > self::TOKEN_EXPIRE;
}
public function scopeExpired($query)
{
return $query->where('created_at','<',now()->subSecond(self::TOKEN_EXPIRE));
}
}
با سلام مشکل رو متوجه شدم ، از route model binding استفاده میکردم ، اما فراموش کرده بودم فیلد پیش فرض رو به توکن تغییر بدم
code in LoginToken.php
public function getRouteKeyName()
{ // change default field for route model Binding from id to token
return 'token';
}