Redirecting...

This page has moved to https://docs.nats.io.

Click here if you are not redirected.

Authenticating with a User and Password

For this example, start the server using:

> nats-server --user myname --pass password

You can encrypt passwords to pass to nats-server using a simple tool provided by the server:

> go run mkpasswd.go -p
> password: password
> bcrypt hash: $2a$11$1oJy/wZYNTxr9jNwMNwS3eUGhBpHT3On8CL9o7ey89mpgo88VG6ba

and use the hashed password in the server config. The client still uses the plain text version.

The code uses localhost:4222 so that you can start the server on your machine to try them out.

Connecting with a User/Password

When logging in with a password nats-server will take either a plain text password or an encrypted password.

// Set a user and plain text password
nc, err := nats.Connect("127.0.0.1", nats.UserInfo("myname", "password"))
if err != nil {
	log.Fatal(err)
}
defer nc.Close()

// Do something with the connection

Options options = new Options.Builder().
                            server("nats://localhost:4222").
                            userInfo("myname","password"). // Set a user and plain text password
                            build();
Connection nc = Nats.connect(options);

// Do something with the connection

nc.close();
let nc = NATS.connect({url: server.nats, user: "myname", pass: "password"});
nc = NATS()

await nc.connect(servers=["nats://myname:password@demo.nats.io:4222"])

# Do something with the connection.

require 'nats/client'

NATS.start(servers:["nats://myname:password@127.0.0.1:4222"], name: "my-connection") do |nc|
   nc.on_error do |e|
    puts "Error: #{e}"
  end

   nc.on_reconnect do
    puts "Got reconnected to #{nc.connected_server}"
  end

  nc.on_disconnect do |reason|
    puts "Got disconnected! #{reason}"
  end

  nc.close
end
let nc = await connect({url: server.nats, user: "myname", pass: "password"});

Connecting with a User/Password in the URL

Most clients make it easy to pass the user name and password by accepting them in the URL for the server. This standard format is:

nats://user:password@server:port

Using this format, you can connect to a server using authentication as easily as you connected with a URL:

// Set a user and plain text password
nc, err := nats.Connect("myname:password@127.0.0.1")
if err != nil {
	log.Fatal(err)
}
defer nc.Close()

// Do something with the connection

Connection nc = Nats.connect("nats://myname:password@localhost:4222");

// Do something with the connection

nc.close();
let url = `nats://myname:password@127.0.0.1:${port}`;
let nc = NATS.connect(url);
nc = NATS()

await nc.connect(servers=["nats://myname:password@demo.nats.io:4222"])

# Do something with the connection.

require 'nats/client'

NATS.start(servers:["nats://myname:password@127.0.0.1:4222"], name: "my-connection") do |nc|
   nc.on_error do |e|
    puts "Error: #{e}"
  end

   nc.on_reconnect do
    puts "Got reconnected to #{nc.connected_server}"
  end

  nc.on_disconnect do |reason|
    puts "Got disconnected! #{reason}"
  end

  nc.close
end
let url = `nats://myname:password@127.0.0.1:${port}`;
let nc = await connect({url: url});

results matching ""

    No results matching ""