iT邦幫忙

0

laravel 如何用 api 路由 去 登入網站並轉址到首頁

  • 分享至 

  • xImage

各位大大好! 最近有一個需求,需要整合兩系統
簡稱 A系統(Laravel) B系統
A系統 所有使用者
B系統 部分使用者
各自有各自的會員系統

所以打算做一個自動登入的連結,我負責的是A系統
打算兩個系統都建置相同名稱的帳號
例如做一個API POST 帳號 密碼 由B系統提供資料
檢查成功後,想要直接幫使用者登入,並跳轉到首頁

但好像api.php web.php兩種路由不同,轉址到首頁還是沒有登入的狀態
想請問該如何處裡這個問題。

麻煩各位大大

我嘗試 Auth::loginUsingId($user->id); 直接登入,後再轉址也是不行。

dragonH iT邦超人 5 級 ‧ 2019-06-13 16:27:38 檢舉
如果你的 A, B

分別為兩台主機

登入驗證完是以 session 儲存登入狀態

根據這篇

https://stackoverflow.com/questions/4511462/session-is-saved-on-server-or-in-browser

session is associated with a single domain name

由 A 登入

從 B 取得資料驗證

雖然你的登入資料都正確

對 B 來說

你還是視同沒登入

因為在B那的 session 沒有你登入的資訊

除非 你用的是 B 那提供的 api 做驗證

或者有辦法換成JWT之類的驗證方式

以上是我瞎猜的

歡迎大家打我臉

因為我也想知道這樣推論是否正確XD
Victor iT邦新手 2 級 ‧ 2019-06-14 15:29:58 檢舉
謝謝你的回答! 不同主機,所以最後我是使用,約定好的帳號密碼來請求,判斷正確後直接轉址幫他登入
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
瑞奇
iT邦新手 4 級 ‧ 2019-06-14 08:45:01
最佳解答

若你只是要透過A來驗證帳密正確性,也可以考慮使用B的登入頁面,在B的登入驗證程序中(Controller)呼叫A的驗證API,若驗證成功,一樣就可以在B端放行(紀錄登入成功的Session 或其他紀錄)),然後導到B的登入後首頁,這是比較簡單的作法。

Victor iT邦新手 2 級 ‧ 2019-06-14 13:48:27 檢舉

謝謝你的回答,發現用 laravel 對登入的session 還要再多了解,不太知道他產生登入session 的原理
而且後來發現卡在Csrf的問題,目前把要開放給別人的網址 排除掉Csrf限制之外,暫時看起來可以,正在優化中! 謝謝你!

我要發表回答

立即登入回答