Esempio n. 1
0
 public static ApiModel.AuthToken FromData(DataModel.AuthToken dataToken)
 {
     return(dataToken == null ? null : new ApiModel.AuthToken()
     {
         Id = dataToken.Id,
         DateExpired = dataToken.DateExpired,
     });
 }
Esempio n. 2
0
        protected Guid GetUserId(PlayCatDbContext context)
        {
            var inviteService = _server.Host.Services.GetService(typeof(IInviteService)) as IInviteService;

            string password = "******";
            string email    = "*****@*****.**";

            DataModel.User      user      = context.CreateUser(email, "test", "test", "m", password, inviteService.GenerateInvite());
            DataModel.AuthToken authToken = context.CreateToken(DateTime.Now.AddDays(-1), false, user.Id);

            context.SaveChanges();

            return(user.Id);
        }
Esempio n. 3
0
        public CheckTokenResult CheckToken(string token)
        {
            var responseBuilder =
                ResponseBuilder <CheckTokenResult>
                .Fail()
                .IsShowInfo(false)
                .SetCode(ResponseCode.InvalidToken);

            if (string.IsNullOrEmpty(token))
            {
                return(responseBuilder.SetInfoAndBuild("Token not found in headers"));
            }

            if (!Guid.TryParse(token, out Guid tokenId))
            {
                return(responseBuilder.SetInfoAndBuild("Token wrong format"));
            }

            DataModel.AuthToken authToken = _dbContext.AuthTokens.FirstOrDefault(x => x.Id == tokenId);

            if (authToken == null)
            {
                return(responseBuilder.SetInfoAndBuild("Token not registered"));
            }

            if (authToken.DateExpired < DateTime.Now)
            {
                return(responseBuilder.SetInfoAndBuild("Token is expired"));
            }

            if (!authToken.IsActive)
            {
                return(responseBuilder.SetInfoAndBuild("Token is not active"));
            }

            return(ResponseBuilder <CheckTokenResult> .SuccessBuild(new CheckTokenResult()
            {
                AuthToken = authToken,
            }));
        }
Esempio n. 4
0
        public SignUpInResult SignUp(SignUpRequest request)
        {
            return(BaseInvokeCheckModel(request, () =>
            {
                var responseBuilder =
                    ResponseBuilder <SignUpInResult>
                    .Fail();

                if (!_inviteService.IsInviteValid(request.VerificationCode))
                {
                    return responseBuilder.SetInfoAndBuild("Verification code is wrong");
                }

                if (_dbContext.Users.Any(x => x.Email == request.Email))
                {
                    return responseBuilder.SetInfoAndBuild("User with this email already registered");
                }

                if (_dbContext.Users.Any(x => x.VerificationCode == request.VerificationCode))
                {
                    return responseBuilder.SetInfoAndBuild("This invite already used");
                }

                string salt = Crypto.GenerateSalt();
                string passwordHah = Crypto.HashPassword(request.Password + salt);

                var dataUser = UserMapper.ToData.FromRequest(request, (user) =>
                {
                    user.Id = Guid.NewGuid();
                    user.IsUploadingAudio = false;
                    user.PasswordHash = passwordHah;
                    user.PasswordSalt = salt;
                    user.RegisterDate = DateTime.Now;
                });

                var dataAuthToken = new DataModel.AuthToken()
                {
                    Id = Guid.NewGuid(),
                    DateExpired = DateTime.Now.AddDays(AuthTokenDaysExpired),
                    UserId = dataUser.Id,
                    IsActive = true,
                };

                var playlist = new DataModel.Playlist()
                {
                    Id = Guid.NewGuid(),
                    IsGeneral = true,
                    OwnerId = dataUser.Id,
                    OrderValue = 0,
                };

                _dbContext.AuthTokens.Add(dataAuthToken);
                _dbContext.Users.Add(dataUser);
                _dbContext.Playlists.Add(playlist);
                _dbContext.SaveChanges();

                return ResponseBuilder <SignUpInResult> .SuccessBuild(new SignUpInResult()
                {
                    User = UserMapper.ToApi.FromData(dataUser),
                    AuthToken = AuthTokenMapper.ToApi.FromData(dataAuthToken),
                });
            }));
        }
Esempio n. 5
0
 private void UpdateAuthToken(DataModel.AuthToken token)
 {
     token.DateExpired = DateTime.Now.AddDays(AuthTokenDaysExpired);
     token.IsActive    = true;
 }