-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScript2.fsx
44 lines (35 loc) · 1.14 KB
/
Script2.fsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#r "nuget: FsHttp"
#r "nuget: System.IdentityModel.Tokens.Jwt"
open FsHttp
open Microsoft.IdentityModel.Tokens
type Token = {
AccessToken : string
ExpiresIn : float
}
let tokenrequest username password =
http {
POST "https://weblink.mastracu.it:444/oauth2/token"
CacheControl "no-cache"
body
jsonSerialize
{|
UserName = username
Password = password
ClientId = "f4ddebe19f06496187e672a50e8dcbb9"
|}
}
|> Request.send
|> Response.expectStatusCode 200
|> Result.map (Response.deserializeJson<Token> >> fun t -> t.AccessToken)
let resourcerequest url validToken =
http {
POST url
CacheControl "no-cache"
header "token" validToken
}
|> Request.send
|> Response.expectStatusCode 200
|> Result.map Response.toText
let maybeValidToken = tokenrequest "Admin" "Admin"
let Resource1req = Result.bind (resourcerequest "https://weblink.mastracu.it:444/api/rawcmd") maybeValidToken
let Resource2req = Result.bind (resourcerequest "http://localhost:8084/audience1/sample2") maybeValidToken