Как создать согласованный PasetoSymmetricKey с пакетом nuget adavidesmet/paseto-dotnet?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать согласованный PasetoSymmetricKey с пакетом nuget adavidesmet/paseto-dotnet?

Сообщение Anonymous »

Я запустил две среды разработки с помощью
dotnet watch run --urls=http://localhost:5001Команда .
Один экземпляр генерирует токен PASETO, другой его декодирует, экземпляр декодирования завершается с ошибкой «Неверный токен».
Я использовал следующий код с пакетом nuget paseto-dotnet.
using System.Text.Json;
using FluentResults;
using Paseto;
using Paseto.Builder;
using Paseto.Cryptography.Key;

public static class TokenUtils
{
readonly static PasetoSymmetricKey pasetoSymmetricKey = new PasetoBuilder()
.UseV4(Purpose.Local)
.WithSharedKey(Encoding.UTF8.GetBytes("DummySecret"))
.GenerateSymmetricKey();

public static string GenerateLocalToken(TokenPayload tokenPayload)
{
return new PasetoBuilder()
.UseV4(Purpose.Local)
.WithKey(pasetoSymmetricKey)
.AddClaim("UserId", tokenPayload.AppId)
.IssuedAt(DateTime.UtcNow)
.Expiration(tokenPayload.ExpiresAt)
.Encode();
}

public static Result DecodeLocalToken(string token)
{
try
{
PasetoTokenValidationResult decodedResult = new PasetoBuilder()
.UseV4(Purpose.Local)
.WithSharedKey(Encoding.UTF8.GetBytes("DummySecret"))
.WithKey(pasetoSymmetricKey)
.Decode(token);
if (decodedResult is null) { return Result.Fail("Failed to Decode Token"); }
if (!decodedResult.IsValid) { return Result.Fail("Invalid Token"); }
TokenPayload? tokenPayload = JsonSerializer.Deserialize(decodedResult.Paseto.RawPayload);
if (tokenPayload is null) { return Result.Fail("Failed to Deserialize TokenPayload"); }
return Result.Ok(tokenPayload);
}
catch (Exception exception)
{
return Result.Fail(exception.Message);
}
}
}

using System.Text.Json.Serialization;

public class TokenPayload
{
public string UserId { get; set; } = default!;
[JsonPropertyName("iat")]
public DateTime IssuedAt { get; set; } = default!;
[JsonPropertyName("exp")]
public DateTime ExpiresAt { get; set; } = default!;
}



Подробнее здесь: https://stackoverflow.com/questions/784 ... otnet-nuge
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как декодировать токен Paseto Laravel
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как использовать FindAll() с пакетом nuget Interop.UIAutomationClient
    Anonymous » » в форуме C#
    0 Ответы
    168 Просмотры
    Последнее сообщение Anonymous
  • Какая связь между пакетом nuget и его источником?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Проблема с пакетом nuget NetBarcode 1.7.2 и функцией SixLabors.Fonts.Measure().
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Зависимость Maven одинаково с пакетом Nuget
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»