source: iknow-api/Controllers/AuthController.cs@ c2e73b6

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

added remaining methods to refreshtoken feature

  • Property mode set to 100644
File size: 2.3 KB
Line 
1using iknow_api.DTOs;
2using iknow_api.Services;
3using Microsoft.AspNetCore.Authorization;
4using Microsoft.AspNetCore.Authentication.JwtBearer;
5using Microsoft.AspNetCore.Mvc;
6
7namespace iknow_api.Controllers
8{
9 [ApiController]
10 [Route("api/[controller]")]
11 public class AuthController : ControllerBase
12 {
13 private readonly IAuthService _authService;
14 private readonly IRefreshTokenService _refreshTokenService;
15
16 public AuthController(IAuthService authService, IRefreshTokenService refreshTokenService)
17 {
18 _authService = authService;
19 _refreshTokenService = refreshTokenService;
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")]
37 public async Task<IActionResult> Register([FromBody] RegisterDto request)
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")]
45 public async Task<IActionResult> Login([FromBody] LoginDto request)
46 {
47 var token = await _authService.LoginAsync(request);
48 if (token == null) return Unauthorized("Invalid credentials");
49 return Ok(new { Token = token });
50 }
51
52 [Authorize]
53 [HttpGet("getstring")]
54 public async Task<IActionResult> getstring()
55 {
56 return Ok(new { message = "You are authorized!" });
57 }
58
59 [HttpPost("verify-user-token")]
60 public async Task<IActionResult> VerifyToken([FromBody] VerifyRefreshTokenDto verifyRefreshToken)
61 {
62 if (await _refreshTokenService.VerifyRefreshToken(verifyRefreshToken))
63 { return Ok(await _authService.GenerateNewJWT(verifyRefreshToken)); }
64 else
65 { return BadRequest(new { message = "No token found!" }); }
66 }
67 }
68}
Note: See TracBrowser for help on using the repository browser.