我有2个应用,一个用于身份验证,另一个用于产品。登录或验证电子邮件后,用户将被重定向到产品应用程序。重定向时,最近登录的用户会立即注销,因此对已登录用户的引用将变为null
,并且我将需要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 );
} );
}
});
登录用户始终存在,直到重定向变为空为止。如何维护身份验证应用程序中用户的登录状态?
答案 0 :(得分:0)
我假设两个应用程序都连接到同一数据库?
当您重定向本地状态更改时-特别是在这种情况下,您的本地存储状态将跟踪用户恢复令牌。
如果要允许一个应用程序对另一个应用程序进行身份验证,则需要某种形式的SSO-一个简单的实现是登录后从服务器请求一个resumeToken,将其传递给URL中的第二个应用程序,然后使用{{ 1}}。一种更狡猾(但可能更简单?)的方法可能是从app1复制保存在localStorage中的令牌,将其传递到URL中到app2,然后再在此处使用保存。