[#85ED63A1D2FD09E3AEC3830176621D5EF61F5CC9]

Function static_url:: set_userinfo

Set the userinfo

Synopsis

            static_url&
set_userinfo(core::string_view s);
        

Description

The userinfo is set to the given string, which may contain percent-escapes. Any special or reserved characters in the string are automatically percent-encoded. The effects on the user and password depend on the presence of a colon (':') in the string:

  • If an unescaped colon exists, the characters up to the colon become the user and the rest of the characters after the colon become the password. In this case has_password returns true. Otherwise,
  • If there is no colon, the user is set to the string. The function has_password returns false.
  • NOTE

    The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.

    Example

    assert( url( "http://example.com" ).set_userinfo( "user:pass" ).encoded_user() == "user" );

    Complexity

    Linear in `this->size() + s.size()`.

    Exception Safety

    Strong guarantee. Calls to allocate may throw.

    BNF

    userinfo = [ [ user ] [ ':' password ] ] user = *( unreserved / pct-encoded / sub-delims ) password = *( unreserved / pct-encoded / sub-delims / ":" )

    Specification

  • 3.2.1. User Information (rfc3986)