Я попытался авторизировать пользователя в Nats с помощью Authcallout, но я не уверен, что не так, также документация очень необоснован.
Я использую Nats.jwt, который находится в предварительном просмотре, как я знаю.var subs = connection.SubscribeAsync("$SYS.REQ.USER.AUTH");
await foreach (var s in subs) {
try {
var claims = new NatsJwt().DecodeClaims(s.Data);
var seed = "SAAEQ2RFTAW77VKT5PCB7PTYXADB5G45TVIKPSA4IA6K2IIVOIS4EUUDFY";
var nKey = KeyPair.FromSeed(seed);
var uc = new NatsJwt().NewUserClaims(claims.AuthorizationRequest.UserNKey);
var jwt = new NatsJwt().EncodeUserClaims(uc, nKey);
var response = new NatsAuthorizationResponseClaims() {
Subject = claims.AuthorizationRequest.UserNKey,
Audience = "AUTH",
Name = "User",
AuthorizationResponse = new NatsAuthorizationResponse {
Jwt = jwt
}
};
var responseData = new NatsJwt().EncodeAuthorizationResponseClaims(response, nKey);
await s.ReplyAsync(responseData);
}
catch (Exception e) {
Console.WriteLine(e);
}
}
< /code>
и ответа - это jwt < /p>
{
"header" : {
"typ" : "JWT",
"alg" : "ed25519-nkey"
},
"payload" : {
"aud" : "AUTH",
"jti" : "OPXAF47INLOCUAV6QYHH4EF4TYBFCSOKGY2SGUJVC7O3JYDG6KYQ",
"iat" : 1751321167,
"iss" : "ACG6OIN5F2HKSFQOXLF74NTM6B4P5GLJAPW7FVTSGSHN3ZW55DKHE246",
"name" : "User",
"sub" : "UBDFTHFMI33CBTOJJW5YZYCBLEI33FIFKL2OZ5YXLMYUSAM2SWM2QN35",
"nats" : {
"jwt" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiJCVURQRk9CUUxTTFpaQVNHVFhaRlRKSERSS0FWSUhERVBQUFpGSkhaUjdHNVpOSjJISDVRIiwiaWF0IjoxNzUxMzIxMTY3LCJpc3MiOiJBQ0c2T0lONUYySEtTRlFPWExGNzROVE02QjRQNUdMSkFQVzdGVlRTR1NITjNaVzU1REtIRTI0NiIsInN1YiI6IlVCREZUSEZNSTMzQ0JUT0pKVzVZWllDQkxFSTMzRklGS0wyT1o1WVhMTVlVU0FNMlNXTTJRTjM1IiwibmF0cyI6eyJwdWIiOnt9LCJzdWIiOnt9LCJzdWJzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ0eXBlIjoidXNlciIsInZlcnNpb24iOjJ9fQ.q3hRtWv0ZPqRpYvu1MFSLaf0-1Lz4LaDlf899YVE1M3R6b3HSqAaqJ7gtg8th8yk6gbtHvqXxatQOVIcRZoaCg",
"error" : null,
"issuer_account" : null,
"type" : "authorization_response",
"version" : 2
}
},
"signature" : "AeLphGt-P-ypOIvHAJpyBS6R2NsPTxs45gcPMilpgxPsjbNSOv5x1ZgUHh9Rb-wdOjGQoL6GaiTZaQgSjhybBQ"
}
< /code>
В другом проекте, где я пытаюсь подключиться, я всегда получаю нарушение автоза. < /p>
Это моя конфигурация.# Account seed
# SAAACPLL5TOFCAWMXNNBOYWQGRNQG3E4BRS23MVXVLVQOPJJQTWSALNZ5I
accounts {
AUTH: {
users: [ { user: auth, password: auth } ]
}
APP: {}
SYS: {}
}
authorization {
auth_callout {
issuer: ACG6OIN5F2HKSFQOXLF74NTM6B4P5GLJAPW7FVTSGSHN3ZW55DKHE246
auth_users: [ auth ]
account: AUTH
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... allout-net
NATS AUTHCALLOUT .NET ⇐ C#
Место общения программистов C#
1751322289
Anonymous
Я попытался авторизировать пользователя в Nats с помощью Authcallout, но я не уверен, что не так, также документация очень необоснован.
Я использую Nats.jwt, который находится в предварительном просмотре, как я знаю.var subs = connection.SubscribeAsync("$SYS.REQ.USER.AUTH");
await foreach (var s in subs) {
try {
var claims = new NatsJwt().DecodeClaims(s.Data);
var seed = "SAAEQ2RFTAW77VKT5PCB7PTYXADB5G45TVIKPSA4IA6K2IIVOIS4EUUDFY";
var nKey = KeyPair.FromSeed(seed);
var uc = new NatsJwt().NewUserClaims(claims.AuthorizationRequest.UserNKey);
var jwt = new NatsJwt().EncodeUserClaims(uc, nKey);
var response = new NatsAuthorizationResponseClaims() {
Subject = claims.AuthorizationRequest.UserNKey,
Audience = "AUTH",
Name = "User",
AuthorizationResponse = new NatsAuthorizationResponse {
Jwt = jwt
}
};
var responseData = new NatsJwt().EncodeAuthorizationResponseClaims(response, nKey);
await s.ReplyAsync(responseData);
}
catch (Exception e) {
Console.WriteLine(e);
}
}
< /code>
и ответа - это jwt < /p>
{
"header" : {
"typ" : "JWT",
"alg" : "ed25519-nkey"
},
"payload" : {
"aud" : "AUTH",
"jti" : "OPXAF47INLOCUAV6QYHH4EF4TYBFCSOKGY2SGUJVC7O3JYDG6KYQ",
"iat" : 1751321167,
"iss" : "ACG6OIN5F2HKSFQOXLF74NTM6B4P5GLJAPW7FVTSGSHN3ZW55DKHE246",
"name" : "User",
"sub" : "UBDFTHFMI33CBTOJJW5YZYCBLEI33FIFKL2OZ5YXLMYUSAM2SWM2QN35",
"nats" : {
"jwt" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiJCVURQRk9CUUxTTFpaQVNHVFhaRlRKSERSS0FWSUhERVBQUFpGSkhaUjdHNVpOSjJISDVRIiwiaWF0IjoxNzUxMzIxMTY3LCJpc3MiOiJBQ0c2T0lONUYySEtTRlFPWExGNzROVE02QjRQNUdMSkFQVzdGVlRTR1NITjNaVzU1REtIRTI0NiIsInN1YiI6IlVCREZUSEZNSTMzQ0JUT0pKVzVZWllDQkxFSTMzRklGS0wyT1o1WVhMTVlVU0FNMlNXTTJRTjM1IiwibmF0cyI6eyJwdWIiOnt9LCJzdWIiOnt9LCJzdWJzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ0eXBlIjoidXNlciIsInZlcnNpb24iOjJ9fQ.q3hRtWv0ZPqRpYvu1MFSLaf0-1Lz4LaDlf899YVE1M3R6b3HSqAaqJ7gtg8th8yk6gbtHvqXxatQOVIcRZoaCg",
"error" : null,
"issuer_account" : null,
"type" : "authorization_response",
"version" : 2
}
},
"signature" : "AeLphGt-P-ypOIvHAJpyBS6R2NsPTxs45gcPMilpgxPsjbNSOv5x1ZgUHh9Rb-wdOjGQoL6GaiTZaQgSjhybBQ"
}
< /code>
В другом проекте, где я пытаюсь подключиться, я всегда получаю нарушение автоза. < /p>
Это моя конфигурация.# Account seed
# SAAACPLL5TOFCAWMXNNBOYWQGRNQG3E4BRS23MVXVLVQOPJJQTWSALNZ5I
accounts {
AUTH: {
users: [ { user: auth, password: auth } ]
}
APP: {}
SYS: {}
}
authorization {
auth_callout {
issuer: ACG6OIN5F2HKSFQOXLF74NTM6B4P5GLJAPW7FVTSGSHN3ZW55DKHE246
auth_users: [ auth ]
account: AUTH
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79685334/nats-authcallout-net[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия