# wp_populate_basic_auth_from_authorization_header()

URL: https://chugunov.pro/api-wordpress/functions/wp_populate_basic_auth_from_authorization_header/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 5.6.0.

## Сигнатура

```php
wp_populate_basic_auth_from_authorization_header()
```

## Описание

Некоторые серверы, работающие в режиме CGI или FastCGI, не передают заголовок Authorization в WordPress. Если он был переписан в заголовок HTTP_AUTHORIZATION, вместо этого заполняются соответствующие переменные $_SERVER .

## Исходный код

Файл: `wp-includes/load.php:106`

```php
function wp_populate_basic_auth_from_authorization_header() {
	// If we don't have anything to pull from, return early.
	if ( ! isset( $_SERVER['HTTP_AUTHORIZATION'] ) && ! isset( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ) {
		return;
	}

	// If either PHP_AUTH key is already set, do nothing.
	if ( isset( $_SERVER['PHP_AUTH_USER'] ) || isset( $_SERVER['PHP_AUTH_PW'] ) ) {
		return;
	}

	// From our prior conditional, one of these must be set.
	$header = $_SERVER['HTTP_AUTHORIZATION'] ?? $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];

	// Test to make sure the pattern matches expected.
	if ( ! preg_match( '%^Basic [a-z\d/+]*={0,2}$%i', $header ) ) {
		return;
	}

	// Removing `Basic ` the token would start six characters in.
	$token    = substr( $header, 6 );
	$userpass = base64_decode( $token );

	// There must be at least one colon in the string.
	if ( ! str_contains( $userpass, ':' ) ) {
		return;
	}

	list( $user, $pass ) = explode( ':', $userpass, 2 );

	// Now shove them in the proper keys where we're expecting later on.
	$_SERVER['PHP_AUTH_USER'] = $user;
	$_SERVER['PHP_AUTH_PW']   = $pass;
}
```

## История изменений

- 5.6.0 — Introduced.

## Связанные

Используется в: [`wp_fix_server_vars`](https://chugunov.pro/api-wordpress/functions/wp_fix_server_vars/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_populate_basic_auth_from_authorization_header/
