应用程序重定向到另一个应用程序Meteor JS时注销用户

时间:2018-08-04 08:17:08

标签: meteor external url-redirection flow-router

我有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 );
            } );
        }
      });

登录用户始终存在,直到重定向变为空为止。如何维护身份验证应用程序中用户的登录状态?

1 个答案:

答案 0 :(得分:0)

我假设两个应用程序都连接到同一数据库?

当您重定向本地状态更改时-特别是在这种情况下,您的本地存储状态将跟踪用户恢复令牌。

如果要允许一个应用程序对另一个应用程序进行身份验证,则需要某种形式的SSO-一个简单的实现是登录后从服务器请求一个resumeToken,将其传递给URL中的第二个应用程序,然后使用{{ 1}}。一种更狡猾(但可能更简单?)的方法可能是从app1复制保存在localStorage中的令牌,将其传递到URL中到app2,然后再在此处使用保存。