Berikut adalah kode untuk endpoint registrasi dan login sederhana tanpa BCrypt dan tanpa JWT (password plain text, tanpa token).
Kode ini bisa digunakan sebagai alternatif dari artikel #7. Saya akan sajikan dalam bentuk cuplikan kode yang siap dipakai di controller.Penjelasan:
// DTO untuk Register dan Login public class RegisterDto { public string Username { get; set; } public string Password { get; set; } // plain text! } public class LoginDto { public string Username { get; set; } public string Password { get; set; } } // Di dalam AuthController.cs (tanpa JWT, tanpa BCrypt) [ApiController] [Route("api/[controller]")] public class AuthController : ControllerBase { private readonly WisataDbContext _context; public AuthController(WisataDbContext context) { _context = context; } // POST: api/auth/register [HttpPost("register")] public async Task<IActionResult> Register(RegisterDto dto) { // Cek username sudah ada? if (await _context.Users.AnyAsync(u => u.Username == dto.Username)) return BadRequest("Username sudah digunakan."); var user = new User { Username = dto.Username, Password = dto.Password // plain text! (TIDAK AMAN) }; _context.Users.Add(user); await _context.SaveChangesAsync(); return Ok("Registrasi berhasil."); } // POST: api/auth/login [HttpPost("login")] public async Task<IActionResult> Login(LoginDto dto) { var user = await _context.Users .FirstOrDefaultAsync(u => u.Username == dto.Username); if (user == null || user.Password != dto.Password) return Unauthorized("Username atau password salah."); // Login sukses, tidak mengembalikan token return Ok(new { message = "Login berhasil", username = user.Username }); } }
Model User (tanpa hash):
public class User { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } // plain text }
- Tidak perlu install BCrypt atau package JWT.
- Password disimpan apa adanya (plain text) — sangat tidak aman.
- Tidak ada token yang dikembalikan; setelah login hanya dapat pesan sukses.
- Cocok untuk pembelajaran alur dasar, tapi jangan dipakai di production.