使用PowerShell进行GitHub Api的基本身份验证

5

我一直在尝试使用PowerShell进行GitHub API的基本认证,但以下方法都无效:

 > $cred = get-credential
 # type username and password at prompt

 > invoke-webrequest -uri https://api.github.com/user -credential $cred

 Invoke-WebRequest : {
     "message":"Requires authentication",
     "documentation_url":"https://developer.github.com/v3"
 }

我们如何使用PowerShell和GitHub Api进行基本身份验证?
1个回答

17

基本身份验证基本上期望您以以下形式在Authorization头中发送凭证:

'Basic [base64("username:password")]'
在PowerShell中,这将被翻译为类似以下的内容:
function Get-BasicAuthCreds {
    param([string]$Username,[string]$Password)
    $AuthString = "{0}:{1}" -f $Username,$Password
    $AuthBytes  = [System.Text.Encoding]::Ascii.GetBytes($AuthString)
    return [Convert]::ToBase64String($AuthBytes)
}

现在你可以这样做:

$BasicCreds = Get-BasicAuthCreds -Username "Shaun" -Password "s3cr3t"

Invoke-WebRequest -Uri $GitHubUri -Headers @{"Authorization"="Basic $BasicCreds"}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接