我開發了一個使用node.js作爲後端的網站。 最近我試圖讓它無服務器並部署到lambda。 我將重新編寫大部分代碼,但只是沒有想出如何在用戶登錄後維護會話。我使用「express-session」模塊,會話數據全部記錄在數據庫中。AWS lambda無服務器網站會話維護
說實話,我對會議沒有很深入的瞭解。 我在谷歌搜索,沒有找到我所需要的。 有沒有人有維護使用lambda會話的一些示例代碼? 或任何資源。非常感謝!
我開發了一個使用node.js作爲後端的網站。 最近我試圖讓它無服務器並部署到lambda。 我將重新編寫大部分代碼,但只是沒有想出如何在用戶登錄後維護會話。我使用「express-session」模塊,會話數據全部記錄在數據庫中。AWS lambda無服務器網站會話維護
說實話,我對會議沒有很深入的瞭解。 我在谷歌搜索,沒有找到我所需要的。 有沒有人有維護使用lambda會話的一些示例代碼? 或任何資源。非常感謝!
有在HTTP提供對Web應用程序中保持會話 狀態的多種機制,如餅乾(標準HTTP標頭), URL參數,對GET請求URL參數,車身參數上POST 請求,如隱藏的表單域(HTML表單)或專有HTTP頭。
AWS LAMBDA無關會話管理,除非你要重新發明輪子和寫入存儲/檢索數據庫會話變量lambda函數,在這種情況下,我d建議您使用Amazon Cognito進行會話管理。見Amazon Cognito Identity SDK for JavaScript。
在Amazon Cognito Identity SDK for Javascript中,特別檢查用例16,它顯示瞭如何檢索Cognito當前用戶。你可以使用這個函數來傳遞每個頁面當前的用戶屬性。
var poolData = {
UserPoolId : '...', // Your user pool id here
ClientId : '...' // Your client id here
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var cognitoUser = userPool.getCurrentUser();
if (cognitoUser != null) {
cognitoUser.getSession(function(err, session) {
if (err) {
alert(err);
return;
}
console.log('session validity: ' + session.isValid());
// other AWS actions ...
});
}
我很困惑的一件事是,如果你想使用匿名用戶並在oauth流中存儲'狀態'字符串,該怎麼辦。 Cognito是否爲此過度誇大?例如步驟2-4在這裏:https://jsapi.apiary.io/apis/starlingbankapi/reference/0/customer-api/get-customer.html – timhc22
@ timhc22我不認爲Cognito在這個特殊情況下是正確的選擇。就個人而言,我會使用[localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage),直到我需要驗證/註冊用戶。 –