2016-11-12 76 views
1

我在Laravel使用Socialite庫。在文檔中講述了一段:無狀態身份驗證 - 這是什麼意思?

The stateless method may be used to disable session state verification. This is useful when adding social authentication to an API: 

這究竟是什麼意思?當我應該使用它?

回答

2

其實,基本的身份驗證機制使用會話來存儲訪問者的身份,所以當你一旦獲得認證(登錄表單提供憑證)當您登錄後訪問其他網頁應用程序不要求再次輸入密碼。因此,會話用於保持用戶的當前狀態在應用程序中。這是大多數情況下發生的情況。

在另一方面,無國籍身份驗證使用,而不用會話。在這種情況下,應用程序不會在會話中保留任何數據,以便在後續請求中識別用戶。相反,它會獨立驗證每個請求。

你什麼時候需要這個?

基本上,它是在需要的時候,你要建立某種API可充當資源,對用戶的服務,其中用戶可以發送請求到您的API從任何地方獲取數據,我的意思是,用戶可能不是一個系統的註冊用戶,但您可以允許用戶根據某種基於令牌的身份驗證使用服務器中的數據。

這不足以形容stateless auth但是這可能給你一些想法。此外,您可以檢查How to do stateless (session-less) & cookie-less authenticationthis,如果您在Google上使用術語Stateless Authentication進行搜索,還可以找到有用的鏈接。

+0

因此,如果我只需要檢查用戶在社交網絡中的身份驗證以及她的帳戶ID是否存在於數據庫中,那麼我可以使用'無狀態方法'? – Dev

+0

我的意思是我從社交網絡獲得認證的用戶數據,並將其與自己的項目中的帳戶關聯 – Dev

+0

是的,但這取決於您的應用/ API要求。有時,我們通過檢查其他應用程序/ auth服務器關於用戶身份的信息,將當前用戶的狀態存儲在應用程序中。這是一個很大的課題。 –