├── .editorconfig ├── .env.development ├── .gitignore ├── Dockerfile ├── cmd └── main.go ├── go.mod ├── go.sum ├── internal ├── adapters │ ├── primary │ │ └── http │ │ │ ├── handlers │ │ │ ├── auth.go │ │ │ ├── handler.go │ │ │ ├── token.go │ │ │ └── user.go │ │ │ └── middlewares │ │ │ └── auth.go │ └── secondary │ │ ├── id │ │ └── det_generator.go │ │ ├── messaging │ │ ├── proto │ │ │ ├── events.pb.go │ │ │ └── events.proto │ │ └── rabbitmq │ │ │ ├── consumer.go │ │ │ ├── event_message.go │ │ │ └── publisher.go │ │ └── persistence │ │ ├── mongodb │ │ ├── db.go │ │ ├── model.go │ │ ├── projector.go │ │ └── user_query_handler.go │ │ └── postgres │ │ ├── db.go │ │ ├── db │ │ ├── converters.go │ │ ├── db.go │ │ ├── models.go │ │ ├── querier.go │ │ └── refresh_token.sql.go │ │ ├── migrations │ │ ├── 20241206231905_create_refresh_tokens.sql │ │ └── 20241206234512_create_event_store.sql │ │ ├── postgres_event_store.go │ │ ├── queries │ │ └── refresh_token.sql │ │ └── token_repository.go ├── application │ ├── command │ │ └── user_command_handler.go │ ├── ports │ │ ├── id │ │ │ └── id_generator.go │ │ ├── primary │ │ │ ├── command │ │ │ │ └── user_commands.go │ │ │ ├── query │ │ │ │ └── user_queries.go │ │ │ └── services │ │ │ │ ├── auth_service.go │ │ │ │ └── token_service.go │ │ ├── secondary │ │ │ ├── event_publisher.go │ │ │ ├── event_store.go │ │ │ └── token_repository.go │ │ ├── security │ │ │ └── token.go │ │ └── types │ │ │ ├── request.go │ │ │ └── response.go │ └── services │ │ ├── auth_service.go │ │ └── token_service.go ├── config │ └── config.go └── domain │ ├── shared │ ├── aggregate.go │ ├── event.go │ ├── event_registry.go │ └── reconstruct.go │ ├── token │ ├── refresh_token.go │ ├── refresh_token_test.go │ └── token_pair.go │ └── user │ ├── events.go │ ├── factory.go │ ├── password.go │ ├── password_test.go │ ├── registry.go │ ├── user.go │ └── user_test.go ├── pkg ├── httputil │ ├── request │ │ ├── context.go │ │ └── header.go │ └── response │ │ └── json.go ├── middleware │ ├── logging.go │ ├── middleware.go │ └── recover.go └── services │ └── auth │ └── tokens │ ├── jwt │ ├── jwt_token_generator.go │ └── jwt_token_generator_test.go │ └── refresh │ └── hex_refresh_generator.go └── sqlc.yaml /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/.editorconfig -------------------------------------------------------------------------------- /.env.development: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/.env.development -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/Dockerfile -------------------------------------------------------------------------------- /cmd/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/cmd/main.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/go.sum -------------------------------------------------------------------------------- /internal/adapters/primary/http/handlers/auth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/primary/http/handlers/auth.go -------------------------------------------------------------------------------- /internal/adapters/primary/http/handlers/handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/primary/http/handlers/handler.go -------------------------------------------------------------------------------- /internal/adapters/primary/http/handlers/token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/primary/http/handlers/token.go -------------------------------------------------------------------------------- /internal/adapters/primary/http/handlers/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/primary/http/handlers/user.go -------------------------------------------------------------------------------- /internal/adapters/primary/http/middlewares/auth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/primary/http/middlewares/auth.go -------------------------------------------------------------------------------- /internal/adapters/secondary/id/det_generator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/id/det_generator.go -------------------------------------------------------------------------------- /internal/adapters/secondary/messaging/proto/events.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/messaging/proto/events.pb.go -------------------------------------------------------------------------------- /internal/adapters/secondary/messaging/proto/events.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/messaging/proto/events.proto -------------------------------------------------------------------------------- /internal/adapters/secondary/messaging/rabbitmq/consumer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/messaging/rabbitmq/consumer.go -------------------------------------------------------------------------------- /internal/adapters/secondary/messaging/rabbitmq/event_message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/messaging/rabbitmq/event_message.go -------------------------------------------------------------------------------- /internal/adapters/secondary/messaging/rabbitmq/publisher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/messaging/rabbitmq/publisher.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/mongodb/db.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/mongodb/db.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/mongodb/model.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/mongodb/model.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/mongodb/projector.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/mongodb/projector.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/mongodb/user_query_handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/mongodb/user_query_handler.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/db.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/db.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/db/converters.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/db/converters.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/db/db.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/db/db.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/db/models.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/db/models.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/db/querier.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/db/querier.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/db/refresh_token.sql.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/db/refresh_token.sql.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/migrations/20241206231905_create_refresh_tokens.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/migrations/20241206231905_create_refresh_tokens.sql -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/migrations/20241206234512_create_event_store.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/migrations/20241206234512_create_event_store.sql -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/postgres_event_store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/postgres_event_store.go -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/queries/refresh_token.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/queries/refresh_token.sql -------------------------------------------------------------------------------- /internal/adapters/secondary/persistence/postgres/token_repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/adapters/secondary/persistence/postgres/token_repository.go -------------------------------------------------------------------------------- /internal/application/command/user_command_handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/command/user_command_handler.go -------------------------------------------------------------------------------- /internal/application/ports/id/id_generator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/id/id_generator.go -------------------------------------------------------------------------------- /internal/application/ports/primary/command/user_commands.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/primary/command/user_commands.go -------------------------------------------------------------------------------- /internal/application/ports/primary/query/user_queries.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/primary/query/user_queries.go -------------------------------------------------------------------------------- /internal/application/ports/primary/services/auth_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/primary/services/auth_service.go -------------------------------------------------------------------------------- /internal/application/ports/primary/services/token_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/primary/services/token_service.go -------------------------------------------------------------------------------- /internal/application/ports/secondary/event_publisher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/secondary/event_publisher.go -------------------------------------------------------------------------------- /internal/application/ports/secondary/event_store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/secondary/event_store.go -------------------------------------------------------------------------------- /internal/application/ports/secondary/token_repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/secondary/token_repository.go -------------------------------------------------------------------------------- /internal/application/ports/security/token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/security/token.go -------------------------------------------------------------------------------- /internal/application/ports/types/request.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/types/request.go -------------------------------------------------------------------------------- /internal/application/ports/types/response.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/ports/types/response.go -------------------------------------------------------------------------------- /internal/application/services/auth_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/services/auth_service.go -------------------------------------------------------------------------------- /internal/application/services/token_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/application/services/token_service.go -------------------------------------------------------------------------------- /internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/config/config.go -------------------------------------------------------------------------------- /internal/domain/shared/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/shared/aggregate.go -------------------------------------------------------------------------------- /internal/domain/shared/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/shared/event.go -------------------------------------------------------------------------------- /internal/domain/shared/event_registry.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/shared/event_registry.go -------------------------------------------------------------------------------- /internal/domain/shared/reconstruct.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/shared/reconstruct.go -------------------------------------------------------------------------------- /internal/domain/token/refresh_token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/token/refresh_token.go -------------------------------------------------------------------------------- /internal/domain/token/refresh_token_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/token/refresh_token_test.go -------------------------------------------------------------------------------- /internal/domain/token/token_pair.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/token/token_pair.go -------------------------------------------------------------------------------- /internal/domain/user/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/user/events.go -------------------------------------------------------------------------------- /internal/domain/user/factory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/user/factory.go -------------------------------------------------------------------------------- /internal/domain/user/password.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/user/password.go -------------------------------------------------------------------------------- /internal/domain/user/password_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/user/password_test.go -------------------------------------------------------------------------------- /internal/domain/user/registry.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/user/registry.go -------------------------------------------------------------------------------- /internal/domain/user/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/user/user.go -------------------------------------------------------------------------------- /internal/domain/user/user_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/internal/domain/user/user_test.go -------------------------------------------------------------------------------- /pkg/httputil/request/context.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/httputil/request/context.go -------------------------------------------------------------------------------- /pkg/httputil/request/header.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/httputil/request/header.go -------------------------------------------------------------------------------- /pkg/httputil/response/json.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/httputil/response/json.go -------------------------------------------------------------------------------- /pkg/middleware/logging.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/middleware/logging.go -------------------------------------------------------------------------------- /pkg/middleware/middleware.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/middleware/middleware.go -------------------------------------------------------------------------------- /pkg/middleware/recover.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/middleware/recover.go -------------------------------------------------------------------------------- /pkg/services/auth/tokens/jwt/jwt_token_generator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/services/auth/tokens/jwt/jwt_token_generator.go -------------------------------------------------------------------------------- /pkg/services/auth/tokens/jwt/jwt_token_generator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/services/auth/tokens/jwt/jwt_token_generator_test.go -------------------------------------------------------------------------------- /pkg/services/auth/tokens/refresh/hex_refresh_generator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/pkg/services/auth/tokens/refresh/hex_refresh_generator.go -------------------------------------------------------------------------------- /sqlc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oguzhanguldibi/dcart-auth-example/HEAD/sqlc.yaml --------------------------------------------------------------------------------