Skip to content

Help to create a method call with login #39

@enzolutions

Description

@enzolutions

Hello guys

I am trying to use this library to call a remote method inside a meteor application, the remote method required the user authenticated, I manage to accomplish the task, but being honest looks I feel that my implementation is not correct. I think I must to be using a kind of promises structure.

Here my solution. any ideas are accepted

const WebSocket = require('ws');
const DDP = require("ddp.js").default

const options = {
    endpoint: "http://localhost:3300/websocket",
    SocketConstructor: WebSocket
};

let token = null;
let tokenExpires = null;
let methodInstalmentsId = null;

const ddp = new DDP(options);
 
ddp.on("connected", () => {
    console.log("Connected");

});

const myLoginParams = {
    user: {
        email: "example@example.com"
    },
    password: "STRONG PASSWORD :P"
};

const methodLoginId = ddp.method("login", [myLoginParams]);

ddp.on("result", message => {
    if (message.id === methodLoginId) {
        if (!message.error) {
            token = message.result.token;
            tokenExpires = message.result.tokenExpires;
            console.log("Logged in!");
            console.log(token);
            console.log(tokenExpires['$date']);
            // Call a secondary method after login
            methodInstalmentsId = ddp.method("instalments", [{token: token}]);
        } else {
            console.log("Error login");
        }
    }

    if (message.id === methodInstalmentsId) {
        if (!message.error) {
            console.log(message)
        } else {
            console.log('Error getting instalments', message)
        }
    }
});


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions