2017-12-25 14 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

세션을 데이터베이스에 저장하십시오. 이렇게하면 백만 번을 절약 할 수 있습니다.