2017-07-13 75 views
1

有什麼方法可以將用戶限制在一個[同時]會話中嗎?AWS Cognito:一次限制用戶一次登錄

我希望能夠檢查當前用戶是否已經有會話。如果他們這樣做,那麼他們可以選擇簽署該會議,然後再繼續。

需要明確的是,此刻卻是可以登錄由多個瀏覽器標籤同一用戶(同一cognito應用程序)

cognitoUser.authenticateUser(authenticationDetails, { 
    cognitoUser: this.cognitoUser, 
    onSuccess: (result) => { 
    this.userSession = result 
    console.log('successfully logged in', result) 
    // But are they already logged in somewhere else? 
    }, 
    onFailure: (error) => { 
    console.log('Login failed for some reason...') 
    callback(error) 
    } 
} 

我明白Cognito是建立與移動設備/應用記住,所以這可能是不可能的,沒有使用登錄lambda鉤...?即使如此,我不確定如果沒有維護登錄用戶表是可能的......?!

回答

1

您可以通過在瀏覽器現有會話的應用程序的所有發佈的令牌

cognitoUser.globalSignOut();

或體徵的當前用戶從無效簽名當前用戶的所有設備進行全球。

if (cognitoUser != null) { cognitoUser.signOut(); }

你只需在再次使用登錄屏幕用戶sigins之前onvoke上述任一的。

+0

我認爲這可能會起作用......它實際上不會告訴我們如果用戶在其他地方簽了名,但是......就像另一個設備或私人標籤等等。但是它只會強制一個會話I想想..我們會嘗試一下。 – comfytoday