2017-10-26 8 views
0

Applicaton Diagram통신이 사이 laravel 애플리케이션

내가 이것을 달성하기 위해 노력하고있어, 위 그림에서와 같이 기본 응용 프로그램 (슈퍼 응용 프로그램)을 서로 공유 자원과 작업을 다른 서버에 laravel 프레임 워크의 다른 설치.

슈퍼 응용 프로그램은 주 서버에 앉아 시스템에 현재 로그인 한 사용자를 확인하는 사용자 관리 모듈을 포함합니다. 에 로그인하고 로그인하면 다른 서버에있는 또 다른 레벨 5 설치 프로그램 인 다른 모듈을로드 할 수 있습니다.

이러한 응용 프로그램은 사용자가 주 응용 프로그램에 로그인 한 경우에만 작동합니다. Super 응용 프로그램의 Auth-> user() 객체는 데이터 입력을 위해 해당 응용 프로그램 (A1 및 A2)으로 전송됩니다.

내 초기 접근법은 laravel 5를 사용하여 HMVC를 구현하는 것이지만 HMVC는 단 하나의 서버 만 사용한다는 것을 의미하는 하나의 라우트 설정 만 사용한다는 것을 의미합니다. 하지만 다른 서버에서 다른 응용 프로그램을 실행하고 주 서버의 기본 응용 프로그램의 인증을 사용하여 바인드하려고하면이 방법이 어떻게 될지 전혀 몰랐습니다.하지만 그렇게 할 수 있다고 생각합니다.

내 상사가 어떻게 그것을 달성하고 이것이이 방법이라고 주장 하느냐는 어떻게 달성 할 수 있습니까?

+0

이 주제를 살펴 보시기 바랍니다 https://laracasts.com/discuss/channels/laravel/same-login-on-two-different-laravel-projects?page=1 –

+0

좋습니다, @LarsMertens, 바로 그렇게하고 있습니다 ... 덕분에 – Andaeiii

답변

1

그것은 이상한 설정,하지만 난 마음에 두 가지 솔루션이 : 응용 프로그램이 공유 된 쿠키를 사용할 수있는 동일한 도메인을 공유 할 수있는 경우

1). 서버를 가리키는

A2 a2.example.org ((서버 2에서 점)

A1 a1.example.org (서버 1에서 점)

SA example.org을 : 예를 들어, 다음과 같이 이제 응용 프로그램이 구성되어 있는지 가정 해 봅시다 3)

SA에서 하위 응용 프로그램에 대한 식별 쿠키를 저장할 수 있으며 각 Laravel 설치에서 액세스 할 수 있습니다.

2) SA에 로그인 할 수있는 동일한 도메인을 공유 할 수없는 경우 일부 POST 데이터를 사용하여 하위 애플리케이션으로 리디렉션하십시오. A1 또는 A2은 요청에서 식별 매개 변수를 수집하고이를 세션/쿠키에 저장하여 사용자를 기억할 수 있습니다.

마지막으로 식별 코드가 있으면 API를 작성하여 사용자 데이터를 검색 할 수 있습니다.

+0

내 마지막 시도는 API를 거쳐야했지만, 그렇게해야한다면, 매우 복잡 할 것입니다. 특히 주 응용 프로그램과 독립적으로 뷰를 렌더링해야하는 경우에 특히 그렇습니다. API는 너무 지루합니다 ... – Andaeiii

+0

API를 통해 데이터를 가져와야합니다. 그런 다음 보조 응용 프로그램에 필요한 개체를 채울 수 있습니다. 아마 당신은'{{Auth :: user() -> username}}'을 가지고 있기 때문에 사용자 데이터를 긁어 냄으로써 새로운'Auth' 가드를 만들고 사용자의 데이터로 채울 수 있습니다. 그러면 다른 모든 것들은 똑같을 것입니다. – Mavin

+0

@ Vicenzo Maragony에게 감사드립니다 ... 나는 그 모든 것을 다 통과했으며 당신의 응답은 나의 탐구에 유효합니다 ... 나는 쿠키 접근법과 함께 갈 것입니다. 많은 의미가 있습니다. – Andaeiii