Changeset ce1f8d4 for iknow-api


Ignore:
Timestamp:
01/21/26 18:00:12 (8 months ago)
Author:
Stefan-Saveski <stefansaveski19@…>
Branches:
master
Children:
dced479
Parents:
97a2322
Message:

Added role to sign in.

Location:
iknow-api
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • iknow-api/Controllers/AuthController.cs

    r97a2322 rce1f8d4  
    22using iknow_api.Services;
    33using Microsoft.AspNetCore.Authorization;
    4 using Microsoft.AspNetCore.Authentication.JwtBearer;
    54using Microsoft.AspNetCore.Mvc;
    65
     
    3736        public async Task<IActionResult> Register([FromBody] RegisterDto request)
    3837        {
    39             //Console.WriteLine(request);
    40 
    4138            try
    4239            {
    43                 var result = await _authService.RegisterAsync(request);
     40                await _authService.RegisterAsync(request);
    4441                return Ok("User registered successfully");
    4542            }
     
    5754        public async Task<IActionResult> Login([FromBody] LoginDto request)
    5855        {
    59             var token = await _authService.LoginAsync(request);
    60             if (token == null) return Unauthorized("Invalid credentials");
    61             return Ok(new { Token = token });
     56            var result = await _authService.LoginAsync(request);
     57            if (result == null) return Unauthorized("Invalid credentials");
     58
     59            return Ok(new
     60            {
     61                token = result.AccessToken,
     62                refreshToken = result.RefreshToken,
     63                role = result.Role
     64            });
    6265        }
    6366
    6467        [Authorize]
    6568        [HttpGet("getstring")]
    66         public async Task<IActionResult> getstring()
     69        public IActionResult getstring()
    6770        {
    6871            return Ok(new { message = "You are authorized!" });
     
    7376        {
    7477            if (await _refreshTokenService.VerifyRefreshToken(verifyRefreshToken))
    75             { return Ok(await _authService.GenerateNewJWT(verifyRefreshToken)); }
    76             else
    77             { return BadRequest(new { message = "No token found!" }); }
     78            {
     79                return Ok(await _authService.GenerateNewJWT(verifyRefreshToken));
     80            }
     81
     82            return BadRequest(new { message = "No token found!" });
    7883        }
    7984
  • iknow-api/DTOs/RefreshTokenDTO.cs

    r97a2322 rce1f8d4  
    33    public class VerifyRefreshTokenDto
    44    {
    5         public string token { get; set; }
     5        public string token { get; set; } = string.Empty;
    66    }
     7
    78    public class AuthResultDto
    89    {
    910        public string AccessToken { get; set; } = string.Empty;
    1011        public string? RefreshToken { get; set; }
     12        public string Role { get; set; } = string.Empty;
    1113    }
    1214}
  • iknow-api/Services/Implementations/AuthService.cs

    r97a2322 rce1f8d4  
    33using System.Text;
    44using BCrypt.Net;
    5 using iknow_api.Services;
    65using iknow_api.Models;
    76using iknow_api.DTOs;
     
    98using Microsoft.IdentityModel.Tokens;
    109using iknow_api.Data;
    11 using Microsoft.EntityFrameworkCore;
    1210
    1311namespace iknow_api.Services
     
    125123                return null;
    126124
    127              var result = new AuthResultDto
     125            var result = new AuthResultDto
    128126            {
    129                 AccessToken = CreateToken(user)
     127                AccessToken = CreateToken(user),
     128                Role = user.Role.ToString()
    130129            };
    131130
     
    146145        {
    147146            int userid = await _refreshTokenRepository.GetUserId(token.token) ?? 0;
    148             User ?user = await _userRepository.GetOnlyUserByIdAsync(userid);
     147            User? user = await _userRepository.GetOnlyUserByIdAsync(userid);
    149148
    150             var result = new AuthResultDto
     149            if (user == null)
     150                throw new InvalidOperationException("User not found for provided refresh token.");
     151
     152            return new AuthResultDto
    151153            {
    152                 AccessToken = CreateToken(user)
     154                AccessToken = CreateToken(user),
     155                Role = user.Role.ToString()
    153156            };
    154            
    155             return result;
    156157        }
    157158
     
    172173            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
    173174
    174             var token = new JwtSecurityToken(
     175            var jwt = new JwtSecurityToken(
    175176                issuer: "iknow-api",
    176177                audience: "iknow-api",
     
    180181            );
    181182
    182             return new JwtSecurityTokenHandler().WriteToken(token);
     183            return new JwtSecurityTokenHandler().WriteToken(jwt);
    183184        }
    184185    }
Note: See TracChangeset for help on using the changeset viewer.