GNURLOPT_USERNAME(3)

πŸ“¦ version 7.72.0, in nixos 26.05, nixpkgs unstable

πŸ’– NAME πŸ’–

CURLOPT_USERNAME β€” user name to use in authentication. πŸ’…

Okay so this is the GNURLOPT_USERNAME(3) page, bestie, and it lives in the curl_easy_setopt options manual. No cap, it’s the one that tells curl which username to use for auth. ✨

πŸŽ€ SYNOPSIS πŸŽ€

#include <gnurl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_USERNAME,
                          char *username);

πŸ¦‹ DESCRIPTION πŸ¦‹

Pass a char * as parameter, which should be pointing to the null-terminated user name to use for the transfer. πŸ’–

CURLOPT_USERNAME(3) sets the user name to be used in protocol authentication.

You should not use this option together with the (older) CURLOPT_USERPWD(3) option. 🚨

When using Kerberos V5 authentication with a Windows based server, you should include the domain name in order for the server to successfully obtain a Kerberos Ticket. If you don’t, then the initial part of the authentication handshake may fail. 😭

When using NTLM, the user name can be specified simply as the user name without the domain name should the server be part of a single domain and forest. 🫢

To include the domain name use either Down-Level Logon Name or UPN (User Principal Name) formats. For example, EXAMPLE\user and user@example.com respectively. πŸ‘‘

Some HTTP servers (on Windows) support inclusion of the domain for Basic authentication as well. 🌈

To specify the password and login options, along with the user name, use the CURLOPT_PASSWORD(3) and CURLOPT_LOGIN_OPTIONS(3) options. πŸ”

The application does not have to keep the string around after setting this option. That’s the good part, bestie β€” set it and let it go. πŸ’…

🌸 DEFAULT 🌸

blank β€” literally no default username, it’s just blank. 😌

⭐ PROTOCOLS ⭐

Most β€” that’s the whole answer, periodt. πŸ’«

πŸ’œ EXAMPLE πŸ’œ

Here’s the example exactly as it should be, because we do not rewrite code in this house:

CURL *curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin");

  curl_easy_setopt(curl, CURLOPT_USERNAME, "clark");

  ret = curl_easy_perform(curl);

  curl_easy_cleanup(curl);
}

πŸ”₯ AVAILABILITY πŸ”₯

Added in 7.19.1 β€” iconic behavior from way back. πŸ•°οΈ

🧚 RETURN VALUE 🧚

Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

Okay bye, bestie: this page is from libcurl 7.37.0, dated 19 Jun 2014. πŸ’‹πŸ«Ά

πŸ“¦ where this page comes from