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

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

added remaining methods to refreshtoken feature

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