Skip to content

More control over auth property #780

Description

@magyarlaszlo

Hello!

I would like to request a small change regarding the auth parameter. Currently, it is limited to a Map<String, String>, but for my use-case it would be nice to have more control over it. As I can see in the code, this map is converted into a JSONObject before it is being sent.

My request would be to change the Manager.Options class' auth property to a JSONObject, so I can send anything I want in auth, not just a map of strings. After the change, the Manager.Options class would look like this:

`
public static class Options extends io.socket.engineio.client.Socket.Options {

    public boolean reconnection = true;
    public int reconnectionAttempts;
    public long reconnectionDelay;
    public long reconnectionDelayMax;
    public double randomizationFactor;
    public Parser.Encoder encoder;
    public Parser.Decoder decoder;
    public JSONObject auth;

    /**
     * Connection timeout (ms). Set -1 to disable.
     */
    public long timeout = 20000;

    // helper method for easier migration
    public void authMap(Map<String, String> authMap) {
        this.auth = new JSONObject(authMap);
    }
}`

Also, the Socket class needs a little change:
`
private final JSONObject auth;

private void onopen() {
    logger.fine("transport is open - connecting");

    if (this.auth != null) {
        this.packet(new Packet<>(Parser.CONNECT, this.auth));
    } else {
        this.packet(new Packet<>(Parser.CONNECT));
    }
}`

Thanks in advance!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions