DDDを使用して認証マイクロサービス/ドメインを構築していますが、各サービスがどこに属しているかを特定することにはまだ問題があります。この時点では、認証サービスがドメインサービスまたはアプリケーションサービスに属しているかどうかはわかりません。このドメインまたはアプリケーションサービスですか?
ドメインserrviceでこの動作をラップし、アプリケーションサービス経由でレスポンスオブジェクトを公開するか、これはアプリケーションサービスとしてそのまま維持する必要があります。
public class AuthenticationService : IAuthenticationService
{
IAuthUnitOfWork _uow;
IUserRepository _userRepository;
IUserTokenFactory _userTokenFactory;
public AuthenticationService(IUserTokenFactory userTokenFactory, IUserRepository userRepository,
IAuthUnitOfWork uow)
{
_userTokenFactory = userTokenFactory;
_userRepository = userRepository;
_uow = uow;
}
public async Task<UserTokenResponse> AuthenticateAsync(string email, string password)
{
var user = await _userRepository.GetByEmailAndPasswordAsync(email, password);
//TODO: Add null check for user
var userToken = await _userTokenFactory.CreateWithAsync(user);
await _uow.SaveChangesAsync();
return new UserTokenResponse
{
ExpiressOn = userToken.ExpiressOn,
Token = userToken.Token
};
}
}