mirror of
https://github.com/taigrr/nats.docs
synced 2025-01-18 04:03:23 -08:00
Update nkey.md
This commit is contained in:
parent
84b03ccc50
commit
050a5abd6c
@ -4,5 +4,124 @@ The 2.0 version of NATS server introduces a new challenge response authenticatio
|
|||||||
|
|
||||||
Handling challenge response may require more than just a setting in the connection options, depending on the client library.
|
Handling challenge response may require more than just a setting in the connection options, depending on the client library.
|
||||||
|
|
||||||
!INCLUDE "../../\_examples/connect\_nkey.html"
|
{% tabs %}
|
||||||
|
{% tab title="Go" %}
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
{% endtab %}
|
||||||
|
|
||||||
|
{% tab title="Java" %}
|
||||||
|
```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();
|
||||||
|
```
|
||||||
|
{% endtab %}
|
||||||
|
|
||||||
|
{% tab title="JavaScript" %}
|
||||||
|
```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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
{% endtab %}
|
||||||
|
|
||||||
|
{% tab title="Python" %}
|
||||||
|
```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()
|
||||||
|
```
|
||||||
|
{% endtab %}
|
||||||
|
|
||||||
|
{% tab title="Ruby" %}
|
||||||
|
```ruby
|
||||||
|
require 'nats/client'
|
||||||
|
|
||||||
|
NATS.start(max_outstanding_pings: 5) do |nc|
|
||||||
|
nc.on_reconnect do
|
||||||
|
puts "Got reconnected to #{nc.connected_server}"
|
||||||
|
end
|
||||||
|
|
||||||
|
nc.on_disconnect do |reason|
|
||||||
|
puts "Got disconnected! #{reason}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Do something with the connection
|
||||||
|
end
|
||||||
|
```
|
||||||
|
{% endtab %}
|
||||||
|
|
||||||
|
{% tab title="TypeScript" %}
|
||||||
|
```typescript
|
||||||
|
// 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));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
{% endtab %}
|
||||||
|
{% endtabs %}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user