Skip to content

devaartana/pweb-auth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Review Assignment Due Date

E11-Authentication

Name NRP
I Kadek Arya Deva Artana 5025231157

Deskripsi

Untuk menyelesaikan tugas kali ini saya menggunakan Go dengan beberapa library eksternal untuk mempermudah jalannya API.

Cara menjalankan program

  • Untuk menjalankan server, pastikan port 3000 sedang tidak digunakan atau bisa mengatur pada .env dan memiliki Go.
  • Download semua depedency dengan menjalankan
    go mod download
    
  • Lalu setelah selesai mendownload semua depedency, jalankan server dengan (pastikan workdir berada pada project)
    go run ./cmd/api/*.go
    
  • Seharusnya server sudah berjalan dengan ditandai muncul pesan pada terminal seperti ini
    2024/11/19 20:01:58 server start at localhost:3000
    

Hasil Testing sesuai soal

  1. User registration

    Registrasi dengan role user

    curl -X POST http://localhost:3000/register -i \
    -H "Content-Type: application/json" \
    -d '{
      "username": "Donal Angsa",
      "password": "password123",
      "role": "user"
    }'

    Registrasi dengan role admin

    curl -X POST http://localhost:3000/register -i \
    -H "Content-Type: application/json" \
    -d '{
      "username": "Donal Bebek",
      "password": "password123",
      "role": "admin"
    }'

    test_1

  2. User login

    Login ke user

    curl -X POST http://localhost:3000/login \
      -H "Content-Type: application/json" \
      -d '{
        "username": "Donal Angsa",
        "password": "password123"
      }'

    test_2_1

    Login ke admin

    curl -X POST http://localhost:3000/login \
      -H "Content-Type: application/json" \
      -d '{
        "username": "Donal Bebek",
        "password": "password123"
      }'

    test_2_2

  3. Get user profile

    Ketika JWT token valid

    curl -X GET http://localhost:3000/profile -i \
    -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJleGFtcGxlIiwiZXhwIjoxNzMyMTA5NzI1LCJpYXQiOjE3MzIwMjMzMjUsImlzcyI6ImV4YW1wbGUiLCJuYmYiOjE3MzIwMjMzMjUsInVzZXJuYW1lIjoiRG9uYWwgQW5nc2EifQ.O9REMk5ENmyKpsB39WSLVijbGJcy_WKJJBApdFbd_pk" \
    -H "Content-Type: application/json"

    test_3_1

    Ketika JWT token invalid (token JWT saya edit dikit)

    curl -X GET http://localhost:3000/profile -i \
    -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJleGFtcGxlIiwiZXhwIjoxNzUyMTA5NzI1LCJpYXQiOjE3MzIwMjMzMjUsImlzcyI6ImV4YW1wbGUiLCJuYmYiOjE3MzIwMjMzMjUsInVzZXJuYW1lIjoiRG9uYWwgQW5nc2EifQ.O9REMk5ENmyKpsB39WSLVijbGJcy_WKJJBApdFbd_pk" \
    -H "Content-Type: application/json"

    test_3_2

  4. Access protected admin endpoint

    Menggunakan JWT token admin

    curl -X GET http://localhost:3000/admin -i \
    -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJleGFtcGxlIiwiZXhwIjoxNzMyMTA5NjI3LCJpYXQiOjE3MzIwMjMyMjcsImlzcyI6ImV4YW1wbGUiLCJuYmYiOjE3MzIwMjMyMjcsInVzZXJuYW1lIjoiRG9uYWwgQmViZWsifQ.6QElqiBiQPazq2WX67FKvYvQGUZo2RczSPx0Q7nb1ME" \

    test_4_1

    Menggunakan JWT token user

    curl -X GET http://localhost:3000/admin -i \
     -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJleGFtcGxlIiwiZXhwIjoxNzMyMTA5NzI1LCJpYXQiOjE3MzIwMjMzMjUsImlzcyI6ImV4YW1wbGUiLCJuYmYiOjE3MzIwMjMzMjUsInVzZXJuYW1lIjoiRG9uYWwgQW5nc2EifQ.O9REMk5ENmyKpsB39WSLVijbGJcy_WKJJBApdFbd_pk" \

    test_4_2

  5. Refresh token

    curl -X POST http://localhost:3000/refresh \
     -H "Content-Type: application/json" \
     -d '{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJleGFtcGxlIiwiZXhwIjoxNzMyMTA2MDA2LCJpYXQiOjE3MzIwMTk2MDYsImlzcyI6ImV4YW1wbGUiLCJuYmYiOjE3MzIwMTk2MDYsInVzZXJuYW1lIjoiZXhhbXBsZXVzZXJ0ZXN0aW5nIn0.S79RIr19QDjivC-MlqM-1D22FULZ_3TdWXHqNC4EBZU"}'

    test_5

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •