mirror of
				https://github.com/taigrr/nats.docs
				synced 2025-01-18 04:03:23 -08:00 
			
		
		
		
	
		
			
				
	
	
		
			130 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
 | 
						|
<div class="tab-wrap">
 | 
						|
  	
 | 
						|
	
 | 
						|
	<input type="radio" id="connect_nkey_go" name="connect_nkey" class="tab" checked>
 | 
						|
	
 | 
						|
	<label for="connect_nkey_go" class="api-lang" data-language="go">Go</label>
 | 
						|
	
 | 
						|
	
 | 
						|
	<input type="radio" id="connect_nkey_java" name="connect_nkey" class="tab">
 | 
						|
	
 | 
						|
	<label for="connect_nkey_java" class="api-lang" data-language="java">Java</label>
 | 
						|
	
 | 
						|
	
 | 
						|
	<input type="radio" id="connect_nkey_js" name="connect_nkey" class="tab">
 | 
						|
	
 | 
						|
	<label for="connect_nkey_js" class="api-lang" data-language="js">JavaScript</label>
 | 
						|
	
 | 
						|
	
 | 
						|
	<input type="radio" id="connect_nkey_py" name="connect_nkey" class="tab">
 | 
						|
	
 | 
						|
	<label for="connect_nkey_py" class="api-lang" data-language="py">Python</label>
 | 
						|
	
 | 
						|
	
 | 
						|
	<input type="radio" id="connect_nkey_ts" name="connect_nkey" class="tab">
 | 
						|
	
 | 
						|
	<label for="connect_nkey_ts" class="api-lang" data-language="ts">TypeScript</label>
 | 
						|
	
 | 
						|
 | 
						|
  	
 | 
						|
	<div class="tab__content">
 | 
						|
	<pre id="connect_nkey_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_nkey/main.go#L10-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">opt, err := nats.NkeyOptionFromSeed("seed.txt")
 | 
						|
if err != nil {
 | 
						|
	log.Fatal(err)
 | 
						|
}
 | 
						|
nc, err := nats.Connect("127.0.0.1", opt)
 | 
						|
if err != nil {
 | 
						|
	log.Fatal(err)
 | 
						|
}
 | 
						|
defer nc.Close()
 | 
						|
 | 
						|
// Do something with the connection
 | 
						|
 | 
						|
</code></pre>
 | 
						|
	</div>
 | 
						|
	
 | 
						|
	<div class="tab__content">
 | 
						|
	<pre id="connect_nkey_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectNKey.java#L16-47"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">NKey theNKey = NKey.createUser(null); // really should load from somewhere
 | 
						|
Options options = new Options.Builder().
 | 
						|
            server("nats://localhost:4222").
 | 
						|
            authHandler(new AuthHandler(){
 | 
						|
                public char[] getID() {
 | 
						|
                    try {
 | 
						|
                        return theNKey.getPublicKey();
 | 
						|
                    } catch (GeneralSecurityException|IOException|NullPointerException ex) {
 | 
						|
                        return null;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                public byte[] sign(byte[] nonce) {
 | 
						|
                    try {
 | 
						|
                        return theNKey.sign(nonce);
 | 
						|
                    } catch (GeneralSecurityException|IOException|NullPointerException ex) {
 | 
						|
                        return null;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                public char[] getJWT() {
 | 
						|
                    return null;
 | 
						|
                }
 | 
						|
            }).
 | 
						|
            build();
 | 
						|
Connection nc = Nats.connect(options);
 | 
						|
 | 
						|
// Do something with the connection
 | 
						|
 | 
						|
nc.close();
 | 
						|
</code></pre>
 | 
						|
	</div>
 | 
						|
	
 | 
						|
	<div class="tab__content">
 | 
						|
	<pre id="connect_nkey_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/auth_examples.js#L119-131"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// seed should be stored in a file and treated like a secret
 | 
						|
const seed = 'SUAEL6GG2L2HIF7DUGZJGMRUFKXELGGYFMHF76UO2AYBG3K4YLWR3FKC2Q';
 | 
						|
 | 
						|
let nc = NATS.connect({
 | 
						|
    url: server.nats,
 | 
						|
    nkey: 'UD6OU4D3CIOGIDZVL4ANXU3NWXOW5DCDE2YPZDBHPBXCVKHSODUA4FKI',
 | 
						|
    sigCB: function (nonce) {
 | 
						|
        const sk = nkeys.fromSeed(Buffer.from(seed));
 | 
						|
        return sk.sign(nonce);
 | 
						|
    }
 | 
						|
});
 | 
						|
</code></pre>
 | 
						|
	</div>
 | 
						|
	
 | 
						|
	<div class="tab__content">
 | 
						|
	<pre id="connect_nkey_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_nkey.py#L5-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
 | 
						|
 | 
						|
async def error_cb(e):
 | 
						|
    print("Error:", e)
 | 
						|
 | 
						|
await nc.connect("nats://localhost:4222",
 | 
						|
                 nkeys_seed="./path/to/nkeys/user.nk",
 | 
						|
                 error_cb=error_cb,
 | 
						|
                 )
 | 
						|
 | 
						|
# Do something with the connection
 | 
						|
 | 
						|
await nc.close()
 | 
						|
 | 
						|
</code></pre>
 | 
						|
	</div>
 | 
						|
	
 | 
						|
	<div class="tab__content">
 | 
						|
	<pre id="connect_nkey_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/auth_examples.ts#L89-101"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// seed should be stored in a file and treated like a secret
 | 
						|
const seed = 'SUAEL6GG2L2HIF7DUGZJGMRUFKXELGGYFMHF76UO2AYBG3K4YLWR3FKC2Q';
 | 
						|
 | 
						|
let nc = await connect({
 | 
						|
    url: server.nats,
 | 
						|
    nkey: 'UD6OU4D3CIOGIDZVL4ANXU3NWXOW5DCDE2YPZDBHPBXCVKHSODUA4FKI',
 | 
						|
    nonceSigner: function (nonce) {
 | 
						|
        const sk = fromSeed(Buffer.from(seed));
 | 
						|
        return sk.sign(Buffer.from(nonce));
 | 
						|
    }
 | 
						|
});
 | 
						|
</code></pre>
 | 
						|
	</div>
 | 
						|
	
 | 
						|
</div>
 |