HoomGroom - Authentication
This is the authentication service for HoomGroom. It is responsible for managing user accounts, authentication, and authorization.
Akmal Ramadhan - 2206081534 - A06
Monitoring dapat dilakukan dengan mengakses Grafana.
HTTP Method | URL |
---|---|
POST | /auth/register |
Request Body:
{
"fullName": "Akmal Ramadhan",
"dateOfBirth": "2003-11-14",
"gender": "MALE",
"username": "AMC76",
"email": "akmalramadhan76@gmail.com",
"password": "akmal",
"role": "PEMBELI"
}
HTTP Method | URL |
---|---|
POST | /auth/login |
Request Body:
{
"email": "akmalramadhan76@gmail.com",
"password": "akmal"
}
Response Body:
{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJha21hbHJhbWFkaGFuNzZAZ21haWwuY29tIiwiaWF0IjoxNzE2NTgyNjU3LCJleHAiOjE3MTY2NjkwNTd9.CIYEKfxkDL47m5KWaEAb2g01FTB4BZrVS5PJZi9xmdM",
"userData": {
"fullName": "Akmal Ramadhan",
"dateOfBirth": "2003-11-14",
"gender": "MALE",
"username": "AMC76",
"email": "akmalramadhan76@gmail.com",
"role": "PEMBELI"
}
}
Saya menggunakan IntelliJ Profiler untuk mencari salah satu bottleneck dari service ini.
Salah satu method yang saya temukan yaitu extractEmail
pada JwtService
saya. Method ini digunakan ketika kita memerlukan token JWT untuk user yang sudah login agar dapat mengakses halaman yang hanya bisa diakses oleh user yang sudah login. Method ini memerlukan waktu yang 22 ms sebelum optimisasi dilakukan.
Optimasi yang saya lakukan:
Membuat instance JwtParser
sekali saja dalam constructor untuk mengurangi overhead setiap token di-parsing. Simpan token yang telah di-parsing ke dalam cache tokenCache
.
Saya melakukan profiling lagi dan mendapatkan hasil sebagai berikut: Diperoleh waktu yang sedikit lebih cepat yaitu 10 ms.