[英]Logout user when app redirect to another app Meteor JS
我有2個應用程序,一個用於auth,另一個用於產品。 登錄或驗證電子郵件后,用戶將被重定向到產品應用程序。 重定向時,最近登錄的用戶會立即注銷,因此對已登錄用戶的引用將變為null
,並且我將需要auth應用中的已登錄憑據進行第二次身份驗證。 重定向到產品應用程序后,如何在身份驗證應用程序中保持登錄狀態?
這是auth應用程序上的登錄功能
var callLogin = function (email, password, router) {
Meteor.loginWithPassword(email, password, ( error )=> {
if (error) {
sAlert.error( error );
} else {
sAlert.success("Logged in successfully");
window.location.replace( "http://localhost:3300/" + Meteor.userId() );
}
});
}
這是產品應用程序上的onCreated函數
Tracker.autorun(function () {
let router = FlowRouter.getParam("_id");
let AuthConnection = DDP.connect( AuthURL );
if ( AuthConnection ) {
console.log( router );
AuthConnection.call('logins.user', router, ( error, response )=> {
if ( error ) {
console.log( error );
} console.log( response );
} );
}
});
在重定向為空之前,登錄用戶始終存在。 如何維護身份驗證應用程序中用戶的登錄狀態?
我假設兩個應用程序都連接到同一個數據庫?
當您重定向本地狀態更改時-特別是在這種情況下,您的本地存儲狀態會跟蹤用戶恢復令牌。
如果要允許一個應用程序對另一個應用程序進行身份驗證,則需要某種形式的SSO-在登錄后從服務器請求一個resumeToken的簡單實現,將其傳遞給URL中的第二個應用程序,然后使用Meteor.loginWithToken
。 一種更狡猾(但可能更簡單?)的方法可能是從app1復制保存在localStorage中的令牌,將其傳遞到URL中到app2,然后再在此處使用保存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.