frostfs-sdk-csharp/src/FrostFS.SDK.ClientV2/Services/Session.cs
Ivan Pchelintsev 11eff4e23e [#1] Move files to top level directory
Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
2024-05-22 14:29:20 +03:00

42 lines
No EOL
1.2 KiB
C#

using FrostFS.SDK.ClientV2.Mappers.GRPC;
using FrostFS.Session;
namespace FrostFS.SDK.ClientV2;
public partial class Client
{
private async Task<SessionToken> CreateSessionAsync(ulong expiration)
{
var request = new CreateRequest
{
Body = new CreateRequest.Types.Body
{
OwnerId = _owner.ToGrpcMessage(),
Expiration = expiration,
}
};
request.AddMetaHeader();
request.Sign(_key);
return await CreateSession(request);
}
private async Task<SessionToken> CreateSession(CreateRequest request)
{
var resp = await _sessionServiceClient.CreateAsync(request);
return new SessionToken
{
Body = new SessionToken.Types.Body
{
Id = resp.Body.Id,
SessionKey = resp.Body.SessionKey,
OwnerId = request.Body.OwnerId,
Lifetime = new SessionToken.Types.Body.Types.TokenLifetime
{
Exp = request.Body.Expiration,
Iat = resp.MetaHeader.Epoch,
Nbf = resp.MetaHeader.Epoch,
}
}
};
}
}