public async Task DeleteRefreshToken(MemberRefreshToken refreshToken) { await Context .Delete <MemberRefreshToken>() .Where(x => x.Id).EqualTo(refreshToken.Id) .ExecuteAsync(); }
public async Task <AuthenticationToken> RefreshToken(string refreshToken) { const string message = "Invalid token"; MemberRefreshToken memberRefreshToken = await _memberRepository.GetRefreshToken(refreshToken); if (memberRefreshToken == null) { throw new OdkServiceException(message); } if (memberRefreshToken.Expires < DateTime.UtcNow) { await _memberRepository.DeleteRefreshToken(memberRefreshToken); throw new OdkServiceException(message); } Member member = await _memberRepository.GetMember(memberRefreshToken.MemberId); _authorizationService.AssertMemberIsCurrent(member); AuthenticationToken authenticationToken = await GenerateAccessToken(member, memberRefreshToken.Expires); await _memberRepository.DeleteRefreshToken(memberRefreshToken); return(authenticationToken); }
public async Task DeleteRefreshToken(string refreshToken) { MemberRefreshToken token = await _memberRepository.GetRefreshToken(refreshToken); if (token == null) { return; } await _memberRepository.DeleteRefreshToken(token); }
private async Task <string> GenerateRefreshToken(Guid memberId, DateTime?expires = null) { string refreshToken = RandomStringGenerator.Generate(64); if (expires == null) { expires = DateTime.UtcNow.AddDays(_settings.RefreshTokenLifetimeDays); } MemberRefreshToken token = new MemberRefreshToken(Guid.Empty, memberId, expires.Value, refreshToken); await _memberRepository.AddRefreshToken(token); return(refreshToken); }
public async Task AddRefreshToken(MemberRefreshToken token) { await Context .Insert(token) .ExecuteAsync(); }