Laravel身份验证不会持久 - 使用远程表

时间:2017-12-25 18:12:11

标签: php laravel authentication laravel-5.5

这已经有一段时间了。我正在使用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

我已经尝试过几乎所有东西,但是会话拒绝持久 - 表格具有所需的所有属性 - 我在哪里错了?

2 个答案:

答案 0 :(得分:0)

由于你正在做一个远程数据库,我相信它与你的平台不是同一个IP。如果您使用文件会话存储,则在进行身份验证时会遇到问题。

您可能需要考虑将会话存储到数据库服务器以解决您的问题。

这是解决它的最简单,最快捷的方法。相信我。:)

答案 1 :(得分:0)

将会话保存到数据库。这将节省你一百万次。