Skip to content

Instantly share code, notes, and snippets.

@adamdriscoll
Created October 16, 2019 18:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamdriscoll/7cfad81d00d5a28bcb58911151114fcc to your computer and use it in GitHub Desktop.
Save adamdriscoll/7cfad81d00d5a28bcb58911151114fcc to your computer and use it in GitHub Desktop.
UD Rest API Authentication
$auth = @()
$auth += New-UDAuthenticationMethod -Endpoint {
param([PSCredential]$Credential)
$userName = $Credential.UserName
$role = if ($userName -eq 'Adam') {
'admin'
} else {
'luser'
}
$Token = Grant-UDJsonWebToken -Identity $UserName -Role $Role -Issuer 'Adam'
New-UDAuthenticationResult -Success -UserName $userName -Role $role -ErrorMessage '' -Token $Token
}
$auth += New-UDAuthenticationMethod -Issuer 'Adam'
$endpoint = New-UDEndpoint -Url /authtest -Endpoint {
$User
}
$Server = Start-UDRestApi -Port 10001 -AuthenticationMethod $auth -Endpoint $endpoint
$uri = 'http://localhost:10001/login'
$Result = Invoke-RestMethod -Uri $uri -Method POST -Body (@{ username = "Adam"; password = "Test" } | ConvertTo-Json) -SessionVariable "Session"
$uri = 'http://localhost:10001/api/authtest'
Invoke-RestMethod -Uri $uri -Method GET -Headers @{ Authorization = "Bearer $($Result.Token)"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment