2017-12-25 8 views
0

これはしばらくの間問題でした。私はLaravel 5.5を使用して、既存のデータベースの管理パネルを構築しています。データベースには、独自のテーブルセットと独自のユーザテーブルがあります。このテーブルは、RDSインスタンス上でリモートでホストされます。Laravel認証は持続しません - リモートテーブルを使用します

私は新しい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

あなたはリモートデータベースをやっているので、あなたのプラットフォームでは同じIPではないと思います。ファイルセッションストレージを使用している場合は、認証に問題があります。

あなたの懸念を解決するためにセッションをデータベースサーバーに保存することを検討してください。

これは、これを解決する最も簡単で最速の方法です。私を信じてください:)

+0

ありがとうございます。私はそのショットをして、それが動作するかどうかを確認します – Ali

+0

うまくいきません - 毎回複数のセッションが作成されていますが、ユーザー用に作成されたセッションは維持されません。 - Auth :: loginUsingIdはセッションを作成します。 ( – Ali

+0

同じドメイン/サブドメインの別のページにリダイレクトしますか?セッションテーブルをリモートデータベースに置いて再試行してみてください。 –

0

セッションをデータベースに保存します。これにより、100万回の節約になります。

関連する問題