corvid  
              
                  
                    March 21, 2016,  2:39pm
                   
                  1 
               
             
            
              So I have a DDP connection for my users. After reconnection, it seems like the user is always logged out. So I tried this.
import {DDP} from 'meteor/ddp';
import {Meteor} from 'meteor/meteor';
import {Accounts} from 'meteor/accounts-base';
// some other garbage omitted
export const Remote = DDP.connect(Meteor.settings.public.remoteUrl);
Accounts.connection = Remote;
Accounts.onLogin(function () {
  Meteor._localStorage.setItem('login token', Accounts._storedLoginToken());
});
Remote.onReconnect = function () {
  if (Meteor.isClient) {
    const token = Meteor._localStorage.getItem('login token');
    if (token) {
      Meteor.loginWithToken(token);
    }
  }
}
export default Remote;
Is this the appropriate way to manage it? It seems this.userId is not set in publications on my current server
             
            
              
            
                
           
          
            
            
              I’m doing something similar, and decided to create a Meteor.method for this.
In this method, I’m validating the token, and use this.setUserId(userId) to set the userId on the server. In the method callback (on the client), I use Meteor.connection.setUserId(userId); to fix the userId on the client.
Simplified version:
// server
Meteor.methods({
  onReconnect: ({ token, userId }) => {
    // validate token
    this.setUserId(userId);
  }
});
// client
Remote.onReconnect = () => {
  const token = Meteor._localStorage.getItem('login token');
  if (token) {
    Meteor.call('onReconnect', { token, userId }, (error, result) => {
      // if all okay
      Meteor.connection.setUserId(userId);
    });
  }
};
Although, I’m using it to restore an old session and not to restore a remote session. But I assume it works the same?
             
            
              1 Like 
            
            
                
           
          
            
              
                corvid  
              
                  
                    March 22, 2016,  3:02pm
                   
                  3 
               
             
            
              that actually solves two of my problems; thank you sir!