2017-04-30 58 views
4

我正在構建一個Web應用程序,並附有一個使用Jekyll的小型網站。原因是網站幾乎不會改變,這樣它就可以快速運行(純HTML + CSS和一些JavaScript),並且與應用程序的半獨立性無關。laravel:在非Laravel上的登錄表

Jekyll網站放置在Laravel公共文件夾內,運行良好。因爲它代表想要使用我們的應用程序的用戶需要訪問默認的Laravel身份驗證路徑來登錄(/登錄)。

我想在我的一個網站頁面上添加登錄表單,使用戶無需先訪問應用程序即可登錄。

當然我嘗試添加一個簡單的表單並將其發佈到/ login(默認的Laravel路徑),但這不起作用,因爲Laravel希望設置一個csrf標記。 我知道Laravel設置了一個包含加密標記的cookie,但我不確定是否能夠(以及如何)使用它。

是否有任何(簡單)的方式將登錄表單添加到NON-Laravel頁面?是否有可能只使用HTML & JavaScript(可能使用Ajax)?

回答

3

您有幾個選項。

1-最便宜的選項:僅在登錄路線上禁用csrf_token。有些人會推薦這個,其他人會說你不應該。如果你想這樣做,你可以在網上進行研究。

2-向您返回csrf_token的路由發出ajax GET請求,以便您可以在表單中使用它。在您的Laravel控制器,你只需返回會話令牌

public function getToken() { 
    return session()->token(); 
} 

3 - 去爲API護照道路請求一樣的SPA。 https://laravel.com/docs/5.4/passport

+1

謝謝!我們的應用程序已經使用護照,但不知何故,我從來沒有想過我應該用它來解決這個問題。 – Edwardo