นี่คือสิ่งที่ใช้ได้กับสถานการณ์เฉพาะของเรา
หมายเหตุจากวิกิพีเดียตรวจสอบสิทธิ์พื้นฐานจากฝั่งไคลเอ็นต์ ขอบคุณคำตอบของ @ briantistสำหรับความช่วยเหลือ!
รวมชื่อผู้ใช้และรหัสผ่านไว้ในสตริงเดียว username:password
$user = "shaunluttin"
$pass = "super-strong-alpha-numeric-symbolic-long-password"
$pair = "${user}:${pass}"
เข้ารหัสสตริงเป็นตัวแปร RFC2045-MIME ของ Base64 ยกเว้นไม่ จำกัด ที่ 76 อักขระ / บรรทัด
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
สร้างค่า Auth เป็นวิธีการช่องว่างและคู่ที่เข้ารหัส Method Base64String
$basicAuthValue = "Basic $base64"
สร้างส่วนหัว Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
$headers = @{ Authorization = $basicAuthValue }
เรียกใช้คำขอทางเว็บ
Invoke-WebRequest -uri "https://api.github.com/user" -Headers $headers
เวอร์ชัน PowerShell นี้มีรายละเอียดมากกว่าเวอร์ชัน cURL ทำไมถึงเป็นเช่นนั้น? @briantist ชี้ให้เห็นว่า GitHub ทำลาย RFC และ PowerShell ก็ยึดติดกับมัน นั่นหมายความว่า cURL ทำลายมาตรฐานด้วยหรือไม่?
$pair = "$($user):$($pass)"
ตรวจสอบคำตอบที่ได้รับอนุมัติ ฉันใช้ข้างต้นและมันทำให้ฉันเจ็บปวดมากเกินไป