source: iknow-api/Repository/Implementations/RefreshTokenRepository.cs@ 1e58098

Last change on this file since 1e58098 was 1e58098, checked in by imbrsk <boris696boris@…>, 11 months ago

added remaining methods to refreshtoken feature

  • Property mode set to 100644
File size: 1.4 KB
Line 
1using iknow_api.Models;
2using iknow_api.Data;
3using iknow_api.Models;
4using Microsoft.EntityFrameworkCore;
5using iknow_api.Services;
6using iknow_api.DTOs;
7using System.Runtime.CompilerServices;
8
9namespace iknow_api.Repositories
10{
11 public class RefreshTokenRepository : IRefreshTokenRepository
12 {
13 private readonly AppDbContext _context;
14
15 public RefreshTokenRepository(AppDbContext context)
16 {
17 _context = context;
18 }
19
20 public async Task AddTokenAsync(RefreshToken refreshToken)
21 {
22 _context.RefreshToken.Add(refreshToken);
23 await _context.SaveChangesAsync();
24 }
25
26 public Task<bool> DeleteTokenAsync(string refreshTokenDto)
27 {
28 throw new NotImplementedException();
29 }
30
31 public async Task<int?> GetUserId(string refreshTokenDto)
32 {
33 var token = await _context.RefreshToken.FirstOrDefaultAsync(u => u.Token == refreshTokenDto);
34 return token?.UserId ;
35 }
36
37 public async Task<bool> VerifyTokenAsync(VerifyRefreshTokenDto refreshTokenDto)
38 {
39 var token = await _context.RefreshToken
40 .FirstOrDefaultAsync(rt =>
41 rt.Token == refreshTokenDto.token &&
42 rt.IsValid &&
43 rt.ExpiresAt > DateTime.UtcNow);
44
45 return token != null;
46 }
47
48 }
49}
Note: See TracBrowser for help on using the repository browser.