source: iknow-api/Controllers/AuthController.cs@ 3347c1b

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

Implement refresh token functionality with associated services and repositories

  • Property mode set to 100644
File size: 2.3 KB
RevLine 
[277bd72]1using iknow_api.DTOs;
2using iknow_api.Services;
[e49c3ed]3using Microsoft.AspNetCore.Authorization;
4using Microsoft.AspNetCore.Authentication.JwtBearer;
[5b42c8d]5using Microsoft.AspNetCore.Mvc;
[c7d4a59]6
[277bd72]7namespace iknow_api.Controllers
[5b42c8d]8{
9 [ApiController]
10 [Route("api/[controller]")]
11 public class AuthController : ControllerBase
12 {
13 private readonly IAuthService _authService;
[3347c1b]14 private readonly IRefreshTokenService _refreshTokenService;
[5b42c8d]15
[3347c1b]16 public AuthController(IAuthService authService, IRefreshTokenService refreshTokenService)
[5b42c8d]17 {
18 _authService = authService;
[3347c1b]19 _refreshTokenService = refreshTokenService;
[5b42c8d]20 }
21
22 [HttpGet("testdb")]
23 public async Task<IActionResult> TestDb()
24 {
25 try
26 {
27 var count = await _authService.GetUsersCountAsync();
28 return Ok(new { message = "DB connection works!", usersCount = count });
29 }
30 catch (Exception ex)
31 {
32 return BadRequest(new { message = "DB connection failed", error = ex.Message });
33 }
34 }
35
36 [HttpPost("register")]
[c7d4a59]37 public async Task<IActionResult> Register([FromBody] RegisterDto request)
[5b42c8d]38 {
39 var result = await _authService.RegisterAsync(request);
40 if (!result) return BadRequest("User already exists");
41 return Ok("User registered successfully");
42 }
43
44 [HttpPost("login")]
[c7d4a59]45 public async Task<IActionResult> Login([FromBody] LoginDto request)
[5b42c8d]46 {
47 var token = await _authService.LoginAsync(request);
48 if (token == null) return Unauthorized("Invalid credentials");
49 return Ok(new { Token = token });
50 }
[e49c3ed]51
52 [Authorize]
53 [HttpGet("getstring")]
54 public async Task<IActionResult> getstring()
55 {
56 return Ok(new { message = "You are authorized!" });
57 }
[3347c1b]58
59 [HttpPost("verify-token")]
60 public async Task<IActionResult> verifyToken([FromBody] VerifyRefreshTokenDto VerifyRefreshTokenDto)
61 {
62 if (await _refreshTokenService.VerifyRefreshToken(VerifyRefreshTokenDto))
63 { return Ok(); }
64 else
65 { return BadRequest("No token found"); }
66 }
[5b42c8d]67 }
68}
Note: See TracBrowser for help on using the repository browser.