├── .dockerignore ├── .github └── workflows │ └── test.yml ├── .gitignore ├── LICENSE ├── Package.swift ├── Public └── .gitkeep ├── README.md ├── Sources ├── App │ ├── AppConfig.swift │ ├── Authenticators │ │ └── UserAuthenticator.swift │ ├── Constants.swift │ ├── Controllers │ │ ├── .gitkeep │ │ └── AuthenticationController.swift │ ├── Emails │ │ ├── Email.swift │ │ ├── ResetPasswordEmail.swift │ │ └── VerificationEmail.swift │ ├── Errors │ │ ├── AppError.swift │ │ └── AuthenticationError.swift │ ├── Extensions │ │ ├── Data+Base64URL.swift │ │ ├── Mailgun+Domains.swift │ │ ├── QueueContext+Services.swift │ │ ├── Request+Services.swift │ │ ├── SHA256+Base64.swift │ │ └── SHA256+String.swift │ ├── Jobs │ │ └── EmailJob.swift │ ├── Middleware │ │ └── ErrorMiddleware.swift │ ├── Migrations │ │ ├── CreateEmailToken.swift │ │ ├── CreatePasswordToken.swift │ │ ├── CreateRefreshToken.swift │ │ └── CreateUser.swift │ ├── Models │ │ ├── .gitkeep │ │ ├── DTO │ │ │ ├── Authentication │ │ │ │ ├── AccessToken │ │ │ │ │ ├── AccessTokenRequest.swift │ │ │ │ │ └── AccessTokenResponse.swift │ │ │ │ ├── EmailVerification │ │ │ │ │ └── SendEmailVerificationRequest.swift │ │ │ │ ├── Login │ │ │ │ │ ├── LoginRequest.swift │ │ │ │ │ └── LoginResponse.swift │ │ │ │ ├── Register │ │ │ │ │ └── RegisterRequest.swift │ │ │ │ └── ResetPassword │ │ │ │ │ ├── RecoverAccountRequest.swift │ │ │ │ │ └── ResetPasswordRequest.swift │ │ │ └── Users │ │ │ │ └── UserDTO.swift │ │ ├── Entities │ │ │ ├── EmailToken.swift │ │ │ ├── PasswordToken.swift │ │ │ ├── RefreshToken.swift │ │ │ └── User.swift │ │ └── JWT │ │ │ └── Payload.swift │ ├── Repositories │ │ ├── EmailTokenRepository.swift │ │ ├── PasswordTokenRepository.swift │ │ ├── RefreshTokenRepository.swift │ │ └── UserRepository.swift │ ├── Services │ │ ├── EmailVerifier.swift │ │ ├── PasswordResetter.swift │ │ ├── RandomGenerator │ │ │ ├── Application+RandomGenerator.swift │ │ │ ├── Application+RandomGenerators.swift │ │ │ ├── RealRandomGenerator.swift │ │ │ └── Request+RandomGenerator.swift │ │ ├── Repositories.swift │ │ └── RequestService.swift │ ├── configure.swift │ ├── migrations.swift │ ├── queues.swift │ ├── routes.swift │ └── services.swift └── Run │ └── main.swift ├── Tests ├── .gitkeep └── AppTests │ ├── AuthenticationTests │ ├── AuthenticationTests.swift │ ├── EmailVerificationTests.swift │ ├── LoginTests.swift │ ├── RegisterTests.swift │ ├── ResetPasswordTests.swift │ └── TokenTests.swift │ ├── Helpers │ ├── Application+Helpers.swift │ ├── TestRepository.swift │ └── XCTAssertResponseError.swift │ ├── Mocks │ ├── Mailgun+Mock.swift │ ├── Repositories │ │ ├── TestEmailTokenRepository.swift │ │ ├── TestPasswordTokenRepository.swift │ │ ├── TestRefreshTokenRepository.swift │ │ └── TestUserRepository.swift │ └── RiggedRandomGenerator.swift │ ├── RepositoryTests │ ├── EmailTokenRepostitoryTests.swift │ ├── PasswordTokenRepositoryTests.swift │ ├── RefreshTokenRepositoryTests.swift │ └── UserRepositoryTests.swift │ ├── ServiceTests │ └── RandomGeneratorTests.swift │ └── TestWorld.swift ├── docker-compose.yml └── web.Dockerfile /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .build 3 | DerivedData 4 | *.xcodeproj 5 | .swiftpm 6 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Package.swift -------------------------------------------------------------------------------- /Public/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/README.md -------------------------------------------------------------------------------- /Sources/App/AppConfig.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/AppConfig.swift -------------------------------------------------------------------------------- /Sources/App/Authenticators/UserAuthenticator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Authenticators/UserAuthenticator.swift -------------------------------------------------------------------------------- /Sources/App/Constants.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Constants.swift -------------------------------------------------------------------------------- /Sources/App/Controllers/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Sources/App/Controllers/AuthenticationController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Controllers/AuthenticationController.swift -------------------------------------------------------------------------------- /Sources/App/Emails/Email.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Emails/Email.swift -------------------------------------------------------------------------------- /Sources/App/Emails/ResetPasswordEmail.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Emails/ResetPasswordEmail.swift -------------------------------------------------------------------------------- /Sources/App/Emails/VerificationEmail.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Emails/VerificationEmail.swift -------------------------------------------------------------------------------- /Sources/App/Errors/AppError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Errors/AppError.swift -------------------------------------------------------------------------------- /Sources/App/Errors/AuthenticationError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Errors/AuthenticationError.swift -------------------------------------------------------------------------------- /Sources/App/Extensions/Data+Base64URL.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Extensions/Data+Base64URL.swift -------------------------------------------------------------------------------- /Sources/App/Extensions/Mailgun+Domains.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Extensions/Mailgun+Domains.swift -------------------------------------------------------------------------------- /Sources/App/Extensions/QueueContext+Services.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Extensions/QueueContext+Services.swift -------------------------------------------------------------------------------- /Sources/App/Extensions/Request+Services.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Extensions/Request+Services.swift -------------------------------------------------------------------------------- /Sources/App/Extensions/SHA256+Base64.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Extensions/SHA256+Base64.swift -------------------------------------------------------------------------------- /Sources/App/Extensions/SHA256+String.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Extensions/SHA256+String.swift -------------------------------------------------------------------------------- /Sources/App/Jobs/EmailJob.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Jobs/EmailJob.swift -------------------------------------------------------------------------------- /Sources/App/Middleware/ErrorMiddleware.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Middleware/ErrorMiddleware.swift -------------------------------------------------------------------------------- /Sources/App/Migrations/CreateEmailToken.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Migrations/CreateEmailToken.swift -------------------------------------------------------------------------------- /Sources/App/Migrations/CreatePasswordToken.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Migrations/CreatePasswordToken.swift -------------------------------------------------------------------------------- /Sources/App/Migrations/CreateRefreshToken.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Migrations/CreateRefreshToken.swift -------------------------------------------------------------------------------- /Sources/App/Migrations/CreateUser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Migrations/CreateUser.swift -------------------------------------------------------------------------------- /Sources/App/Models/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/AccessToken/AccessTokenRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/AccessToken/AccessTokenRequest.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/AccessToken/AccessTokenResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/AccessToken/AccessTokenResponse.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/EmailVerification/SendEmailVerificationRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/EmailVerification/SendEmailVerificationRequest.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/Login/LoginRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/Login/LoginRequest.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/Login/LoginResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/Login/LoginResponse.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/Register/RegisterRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/Register/RegisterRequest.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/ResetPassword/RecoverAccountRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/ResetPassword/RecoverAccountRequest.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Authentication/ResetPassword/ResetPasswordRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Authentication/ResetPassword/ResetPasswordRequest.swift -------------------------------------------------------------------------------- /Sources/App/Models/DTO/Users/UserDTO.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/DTO/Users/UserDTO.swift -------------------------------------------------------------------------------- /Sources/App/Models/Entities/EmailToken.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/Entities/EmailToken.swift -------------------------------------------------------------------------------- /Sources/App/Models/Entities/PasswordToken.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/Entities/PasswordToken.swift -------------------------------------------------------------------------------- /Sources/App/Models/Entities/RefreshToken.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/Entities/RefreshToken.swift -------------------------------------------------------------------------------- /Sources/App/Models/Entities/User.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/Entities/User.swift -------------------------------------------------------------------------------- /Sources/App/Models/JWT/Payload.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Models/JWT/Payload.swift -------------------------------------------------------------------------------- /Sources/App/Repositories/EmailTokenRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Repositories/EmailTokenRepository.swift -------------------------------------------------------------------------------- /Sources/App/Repositories/PasswordTokenRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Repositories/PasswordTokenRepository.swift -------------------------------------------------------------------------------- /Sources/App/Repositories/RefreshTokenRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Repositories/RefreshTokenRepository.swift -------------------------------------------------------------------------------- /Sources/App/Repositories/UserRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Repositories/UserRepository.swift -------------------------------------------------------------------------------- /Sources/App/Services/EmailVerifier.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/EmailVerifier.swift -------------------------------------------------------------------------------- /Sources/App/Services/PasswordResetter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/PasswordResetter.swift -------------------------------------------------------------------------------- /Sources/App/Services/RandomGenerator/Application+RandomGenerator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/RandomGenerator/Application+RandomGenerator.swift -------------------------------------------------------------------------------- /Sources/App/Services/RandomGenerator/Application+RandomGenerators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/RandomGenerator/Application+RandomGenerators.swift -------------------------------------------------------------------------------- /Sources/App/Services/RandomGenerator/RealRandomGenerator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/RandomGenerator/RealRandomGenerator.swift -------------------------------------------------------------------------------- /Sources/App/Services/RandomGenerator/Request+RandomGenerator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/RandomGenerator/Request+RandomGenerator.swift -------------------------------------------------------------------------------- /Sources/App/Services/Repositories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/Repositories.swift -------------------------------------------------------------------------------- /Sources/App/Services/RequestService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/Services/RequestService.swift -------------------------------------------------------------------------------- /Sources/App/configure.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/configure.swift -------------------------------------------------------------------------------- /Sources/App/migrations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/migrations.swift -------------------------------------------------------------------------------- /Sources/App/queues.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/queues.swift -------------------------------------------------------------------------------- /Sources/App/routes.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/routes.swift -------------------------------------------------------------------------------- /Sources/App/services.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/App/services.swift -------------------------------------------------------------------------------- /Sources/Run/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Sources/Run/main.swift -------------------------------------------------------------------------------- /Tests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Tests/AppTests/AuthenticationTests/AuthenticationTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/AuthenticationTests/AuthenticationTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/AuthenticationTests/EmailVerificationTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/AuthenticationTests/EmailVerificationTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/AuthenticationTests/LoginTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/AuthenticationTests/LoginTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/AuthenticationTests/RegisterTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/AuthenticationTests/RegisterTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/AuthenticationTests/ResetPasswordTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/AuthenticationTests/ResetPasswordTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/AuthenticationTests/TokenTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/AuthenticationTests/TokenTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/Helpers/Application+Helpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Helpers/Application+Helpers.swift -------------------------------------------------------------------------------- /Tests/AppTests/Helpers/TestRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Helpers/TestRepository.swift -------------------------------------------------------------------------------- /Tests/AppTests/Helpers/XCTAssertResponseError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Helpers/XCTAssertResponseError.swift -------------------------------------------------------------------------------- /Tests/AppTests/Mocks/Mailgun+Mock.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Mocks/Mailgun+Mock.swift -------------------------------------------------------------------------------- /Tests/AppTests/Mocks/Repositories/TestEmailTokenRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Mocks/Repositories/TestEmailTokenRepository.swift -------------------------------------------------------------------------------- /Tests/AppTests/Mocks/Repositories/TestPasswordTokenRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Mocks/Repositories/TestPasswordTokenRepository.swift -------------------------------------------------------------------------------- /Tests/AppTests/Mocks/Repositories/TestRefreshTokenRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Mocks/Repositories/TestRefreshTokenRepository.swift -------------------------------------------------------------------------------- /Tests/AppTests/Mocks/Repositories/TestUserRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Mocks/Repositories/TestUserRepository.swift -------------------------------------------------------------------------------- /Tests/AppTests/Mocks/RiggedRandomGenerator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/Mocks/RiggedRandomGenerator.swift -------------------------------------------------------------------------------- /Tests/AppTests/RepositoryTests/EmailTokenRepostitoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/RepositoryTests/EmailTokenRepostitoryTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/RepositoryTests/PasswordTokenRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/RepositoryTests/PasswordTokenRepositoryTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/RepositoryTests/RefreshTokenRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/RepositoryTests/RefreshTokenRepositoryTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/RepositoryTests/UserRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/RepositoryTests/UserRepositoryTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/ServiceTests/RandomGeneratorTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/ServiceTests/RandomGeneratorTests.swift -------------------------------------------------------------------------------- /Tests/AppTests/TestWorld.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/Tests/AppTests/TestWorld.swift -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /web.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madsodgaard/vapor-auth-template/HEAD/web.Dockerfile --------------------------------------------------------------------------------