glow_auth/token_request/request_builder
Request Builders for building up token requests
TODO: Rename to TokenRequestBuilder?
Some requirements:
- MAY have query component
- MUST NOT have fragment component
- MUST use TLS
- MUST be “POST”
- Params without value MUST be same as omission
- No repeat params
- scope
space-delimited case insensitive strings defined by auth server
- MAY full or partly ignore
- If different, MUST include scope
in response
- A default must be defined
Types
pub type RequestBuilder(body) {
RequestBuilder(request: Request(body), params: Params)
}
Constructors
-
RequestBuilder(request: Request(body), params: Params)
Functions
pub fn from_request(request: Request(a)) -> RequestBuilder(a)
Constructor: from request
pub fn from_uri(uri: Uri) -> RequestBuilder(String)
Convert a Uri to a RequestBuilder
Note that Request requires a schema and host, but uri doesn’t, so here:
- If you don’t specify a scheme,
https
is assumed - If you don’t specify a host,
localhost
is assumed
pub fn map_request(rb: RequestBuilder(a), f: fn(Request(a)) ->
Request(b)) -> RequestBuilder(b)
pub fn put_param(rb: RequestBuilder(a), key: String, value: String) -> RequestBuilder(
a,
)
pub fn set_params(rb: RequestBuilder(a), params: Params) -> RequestBuilder(
a,
)
pub fn to_token_request(rb: RequestBuilder(a)) -> Request(String)
Access Tokens are requested by form encoded values in the body, while the server returns json.
Some flows allow a GET request where the request query-encodes into the uri.
This function handles both depending on the request.method.