Базовая аутентификация с GitHub API с использованием PowerShell

Я пытался выполнить базовую аутентификацию с помощью GitHub API с помощью PowerShell. Не работает следующее:

 > $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?


person Shaun Luttin    schedule 15.01.2015    source источник


Ответы (1)


Базовая аутентификация в основном предполагает, что вы отправляете учетные данные в заголовке 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"}
person Mathias R. Jessen    schedule 15.01.2015