这已经有一段时间了。我正在使用Laravel 5.5为现有数据库构建管理面板。数据库有自己的一组表来管理和自己的用户表。该表远程托管在RDS实例上。
我创建了一个新的Laravel项目 - 我使用了一个非常简单的身份验证脚本 - 将id和令牌作为参数传递给要登录的路由。所以路由如下:
/auth/login?id=XXX&token=XXX
我的控制器方法代码只是:
$user = \App\Models\User::find($id);
\Auth::loginUsingId($id);
我的配置文件是指远程服务器上的数据库。我的用户模型是:
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password',
];
public function __construct(){
parent::__construct();
$this->table = 'auth_user';
}
protected $hidden = [
'password', 'remember_token',
];
}
\Auth::loginUsingId($id);
成功登录用户并创建了会话 - 但是,当我刷新页面或重定向到其他网页时,\Auth::check()
会返回false
我已经尝试过几乎所有东西,但是会话拒绝持久 - 表格具有所需的所有属性 - 我在哪里错了?
答案 0 :(得分:0)
由于你正在做一个远程数据库,我相信它与你的平台不是同一个IP。如果您使用文件会话存储,则在进行身份验证时会遇到问题。
您可能需要考虑将会话存储到数据库服务器以解决您的问题。
这是解决它的最简单,最快捷的方法。相信我。:)
答案 1 :(得分:0)
将会话保存到数据库。这将节省你一百万次。