42 lines
No EOL
1.2 KiB
C#
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,
|
|
}
|
|
}
|
|
};
|
|
}
|
|
} |