These functions are used to set, fetch, and check authorization tokens.
Usage
arc_token(token = "ARCGIS_TOKEN")
set_arc_token(token, ...)
unset_arc_token(token = NULL)
obj_check_token(token, call = rlang::caller_env())
check_token_has_user(token, call = rlang::caller_env())
Arguments
- token
for
arc_token()
, the name of a token to fetch. Forset_arc_token()
, it is anhttr2_token
that will be set. Forunset_arc_token()
, a character vector of token names to be unset.- ...
named arguments to set
httr2_token
. Must be valid names and must be anhttr2_token
.- call
The execution environment of a currently running function, e.g.
call = caller_env()
. The corresponding function call is retrieved and mentioned in error messages as the source of the error.You only need to supply
call
when throwing a condition from a helper function which wouldn't be relevant to mention in the message.Can also be
NULL
or a defused function call to respectively not display any call or hard-code a code to display.For more information about error calls, see Including function calls in error messages.
Details
It is possible to have multiple authorization tokens in one session. These functions assist you in managing them.
arc_token()
is used to fetch tokens by name. The default token is ARCGIS_TOKEN
.
However, they can be any valid character scalar. set_arc_token()
will create
store a token with the name ARCGIS_TOKEN
. However, you can alternatively
set the tokens by name using a key-value pair. The key is what you would pass
to arc_token()
to fetch the httr2_token
object. To remove a token that has
been set, use unset_arc_token()
.
obj_check_token()
is a developer oriented function that can be used to check
if an object is indeed an httr2_token
. To check if a token has expired,
validate_or_refresh_token()
will do so.
check_token_has_user()
is a developer oriented function that checks to see
if a token has a username
field associated with it.
For developers:
set_arc_token()
uses a package level environment to store the tokens. The
tokens are fetched from the environment using arc_token()
.
Examples
# create fake tokens
token_a <- httr2::oauth_token("1234", arcgis_host = arc_host())
token_b <- httr2::oauth_token("abcd", arcgis_host = arc_host())
# set token to the default location
set_arc_token(token_a)
# fetch token from the default location
arc_token()
#> <httr2_token>
#> token_type: bearer
#> access_token: <REDACTED>
#> arcgis_host: https://www.arcgis.com
# set token by name
set_arc_token(org_a = token_a, org_b = token_b)
#> ✔ Named tokens set: `org_a` and `org_b`
#> ℹ Access named tokens with `arc_token("name")`
# fetch token by name
arc_token("org_a")
#> <httr2_token>
#> token_type: bearer
#> access_token: <REDACTED>
#> arcgis_host: https://www.arcgis.com
arc_token("org_b")
#> <httr2_token>
#> token_type: bearer
#> access_token: <REDACTED>
#> arcgis_host: https://www.arcgis.com
# unset tokens
unset_arc_token()
#> ✔ Token `ARCGIS_TOKEN` has been unset.
unset_arc_token(c("org_a", "org_b"))
#> ✔ Tokens `org_a` and `org_b` have been unset.