コード例 #1
0
        public async Task <SignInResponse> SignInAsync(SignInRequest reqModel, CancellationToken cancellationToken = default(CancellationToken))
        {
            var account = await _accountRepository.GetOneAsync(x => x.MobileNumber == reqModel.MobileNumber, cancellationToken);

            if (account is null || !BC.Verify(reqModel.Password, account.PasswordHash))
            {
                throw new SignInException("Email or password is incorrect");
            }

            return(new SignInResponse
            {
                Id = account.Id,
                Role = account.Role,
                AccessToken = _jwtManager.GenerateAccessToken(account),
                RefreshToken = (await _refreshTokenService.Create(account.Id)).Token,
            });
        }
コード例 #2
0
        private async Task <LoginResponse> GetLoginResponseAsync(User user)
        {
            var userRoles = await userManager.GetRolesAsync(user);

            return(new LoginResponse
            {
                User = mapper.Map <UserView>(user),
                AccessToken = jwtManager.GenerateAccessToken(user.Id, userRoles),
                RefreshToken = await jwtManager.SaveAndGetRefreshTokenAsync(user)
            });
        }