这是对我们的特定情况起作用的。
注释来自Wikipedia的客户端基本身份验证。感谢@briantist的帮助!
将用户名和密码合并为一个字符串 username:password
$user = "shaunluttin"
$pass = "super-strong-alpha-numeric-symbolic-long-password"
$pair = "${user}:${pass}"
将字符串编码为Base64的RFC2045-MIME变体,但不限于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坚持使用RFC。这是否意味着cURL也违反了标准?
$pair = "$($user):$($pass)"
检查批准的答案。我使用了上面的方法,这让我感到非常痛苦