Skip to contents

This function will ping the EarthData API for any available tokens. If a token is not found, it will request one. You may only have two active tokens at any given time. Use edl_revoke_token to remove unwanted tokens. By default, the function will also set an environmental variable for the active R session to store the token. This allows popular R packages which use gdal to immediately authenticate any http addresses to NASA EarthData assets.

Usage

edl_set_token(
  username = default("user"),
  password = default("password"),
  token_number = 1,
  set_env_var = TRUE,
  format = c("token", "header", "file"),
  prompt_for_netrc = interactive()
)

Arguments

username

EarthData Login User

password

EarthData Login Password

token_number

Which token (1 or 2)

set_env_var

Should we set the GDAL_HTTP_HEADER_FILE environmental variable? logical, default TRUE.

format

One of "token", "header" or "file." "header" adds the prefix used by http headers to the return string. "file" returns

prompt_for_netrc

Often netrc is preferable, so this function will by default prompt the user to switch. Set to FALSE to silence this.

Value

A text string containing only the token (format=token), or a token with the header prefix included, Authorization: Bearer <token>

Details

IMPORTANT: it is necessary to unset this token using edl_unset_token() before trying to access HTTP resources that are not part of EarthData, as setting this token will cause those calls to fail! OR simply use edl_netrc() to authenticate without facing this issue.

NOTE: Because GDAL >= 3.6.1 is required to recognize the GDAL_HTTP_HEADERS, but all versions recognize GDAL_HTTP_HEADER_FILE. So we set the Bearer token in a temporary file and provide this path as GDAL_HTTP_HEADER_FILE to improve compatibility with older versions.

Examples

if (FALSE) { # interactive()
edl_set_token()
edl_unset_token()
}