Kotlin:
การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน
วิธีการ:
Kotlin จัดการ HTTP requests ด้วยไลบรารีเช่น ktor
หรือ okhttp
มาลองใช้ okhttp
กันในตอนนี้
ให้ทำการดึงไลบรารีในไฟล์ build.gradle ของคุณ:
dependencies {
implementation("com.squareup.okhttp3:okhttp:4.9.0")
}
ถึงเวลาเขียนโค้ด:
import okhttp3.Credentials
import okhttp3.OkHttpClient
import okhttp3.Request
import java.io.IOException
fun main() {
val client = OkHttpClient()
val username = "admin"
val password = "password123"
val credentials = Credentials.basic(username, password)
val request = Request.Builder()
.url("http://example.com/resource")
.header("Authorization", credentials)
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")
println(response.body!!.string())
}
}
กดรันและมองหาข้อมูลที่ปลอดภัยที่เราต้องการจากคอนโซลของคุณ เราควรจะเห็นข้อมูลนั้นถูกแสดงออกมา
ลงลึก
ในอดีต HTTP Basic Auth เป็นที่นิยม ง่ายๆ เพียงแค่ base64 username:password
และใส่ลงในส่วนหัว ไม่ปลอดภัยเมื่อใช้คนเดียว ดังนั้น HTTPS จึงได้เข้ามามีบทบาท
มีทางเลือกอื่นๆ มากมาย เช่น OAuth สำหรับโทเค็น, API keys ที่ความเรียบง่าย, หรือการยืนยันตัวตนแบบ digest สำหรับการอัพเกรด การยืนยันตัวตนพื้นฐานดีสำหรับการเริ่มต้นหรือสำหรับเครื่องมือภายใน แต่ไม่เหมาะสำหรับเว็บที่ตระหนักถึงความปลอดภัยในยุคสมัยใหม่
รายละเอียดการประยุกต์ใช้: อย่าไปออกแบบใหม่ ให้ไลบรารีจัดการกับการเข้ารหัสและซับซ้อนของโปรโตคอล OkHttp ยังช่วยจัดการกับการลองใหม่และการเชื่อมต่อสำหรับคุณ จำไว้ว่า การยืนยันตัวตนพื้นฐานผ่าน HTTP เป็นสิ่งที่ไม่ควรทำ—เสมอใช้ HTTPS เพื่อรักษาข้อมูลปลอดภัยขณะส่งผ่าน
ดูเพิ่มเติม
- เอกสารการใช้งานอย่างเป็นทางการของ OkHttp: https://square.github.io/okhttp/
- หน้า Kotlin language (สำหรับทุกอย่างเกี่ยวกับ Kotlin): https://kotlinlang.org/
- ศึกษาเพิ่มเติมเกี่ยวกับ Basic Auth: https://tools.ietf.org/html/rfc7617
- ทางเลือกต่างๆ ของ Basic Auth เช่น OAuth 2.0: https://oauth.net/2/