Changeset 8696
- Timestamp:
- 08/21/2008 12:08:25 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/pluggable.php
r8661 r8696 486 486 */ 487 487 function wp_validate_auth_cookie($cookie = '', $scheme = 'auth') { 488 if ( ! $cookie_elements = wp_parse_auth_cookie($cookie, $scheme) ) { 489 do_action('auth_cookie_malformed', $cookie, $scheme); 490 return false; 491 } 492 493 extract($cookie_elements, EXTR_OVERWRITE); 494 495 $expired = $expiration; 496 497 // Allow a grace period for POST and AJAX requests 498 if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] ) 499 $expired += 3600; 500 501 // Quick check to see if an honest cookie has expired 502 if ( $expired < time() ) { 503 do_action('auth_cookie_expired', $cookie_elements); 504 return false; 505 } 506 507 $key = wp_hash($username . '|' . $expiration, $scheme); 508 $hash = hash_hmac('md5', $username . '|' . $expiration, $key); 509 510 if ( $hmac != $hash ) { 511 do_action('auth_cookie_bad_hash', $cookie_elements); 512 return false; 513 } 514 515 $user = get_userdatabylogin($username); 516 if ( ! $user ) { 517 do_action('auth_cookie_bad_username', $cookie_elements); 518 return false; 519 } 520 521 do_action('auth_cookie_valid', $cookie_elements, $user); 522 523 return $user->ID; 524 } 525 endif; 526 527 if ( !function_exists('wp_generate_auth_cookie') ) : 528 /** 529 * Generate authentication cookie contents. 530 * 531 * @since 2.5 532 * @uses apply_filters() Calls 'auth_cookie' hook on $cookie contents, User ID 533 * and expiration of cookie. 534 * 535 * @param int $user_id User ID 536 * @param int $expiration Cookie expiration in seconds 537 * @param string $scheme Optional. The cookie scheme to use: auth, secure_auth, or logged_in 538 * @return string Authentication cookie contents 539 */ 540 function wp_generate_auth_cookie($user_id, $expiration, $scheme = 'auth') { 541 $user = get_userdata($user_id); 542 543 $key = wp_hash($user->user_login . '|' . $expiration, $scheme); 544 $hash = hash_hmac('md5', $user->user_login . '|' . $expiration, $key); 545 546 $cookie = $user->user_login . '|' . $expiration . '|' . $hash; 547 548 return apply_filters('auth_cookie', $cookie, $user_id, $expiration, $scheme); 549 } 550 endif; 551 552 if ( !function_exists('wp_parse_auth_cookie') ) : 553 /** 554 * Parse a cookie into its components 555 * 556 * @since 2.7 557 * 558 * @param string $cookie 559 * @param string $scheme Optional. The cookie scheme to use: auth, secure_auth, or logged_in 560 * @return array Authentication cookie components 561 */ 562 function wp_parse_auth_cookie($cookie = '', $scheme = 'auth') { 488 563 if ( empty($cookie) ) { 489 564 if ( is_ssl() ) { … … 506 581 list($username, $expiration, $hmac) = $cookie_elements; 507 582 508 $expired = $expiration; 509 510 // Allow a grace period for POST and AJAX requests 511 if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] ) 512 $expired += 3600; 513 514 // Quick check to see if an honest cookie has expired 515 if ( $expired < time() ) 516 return false; 517 518 $key = wp_hash($username . '|' . $expiration, $scheme); 519 $hash = hash_hmac('md5', $username . '|' . $expiration, $key); 520 521 if ( $hmac != $hash ) 522 return false; 523 524 $user = get_userdatabylogin($username); 525 if ( ! $user ) 526 return false; 527 528 return $user->ID; 529 } 530 endif; 531 532 if ( !function_exists('wp_generate_auth_cookie') ) : 533 /** 534 * Generate authentication cookie contents. 535 * 536 * @since 2.5 537 * @uses apply_filters() Calls 'auth_cookie' hook on $cookie contents, User ID 538 * and expiration of cookie. 539 * 540 * @param int $user_id User ID 541 * @param int $expiration Cookie expiration in seconds 542 * @param string $scheme Optional. The cookie scheme to use: auth, secure_auth, or logged_in 543 * @return string Authentication cookie contents 544 */ 545 function wp_generate_auth_cookie($user_id, $expiration, $scheme = 'auth') { 546 $user = get_userdata($user_id); 547 548 $key = wp_hash($user->user_login . '|' . $expiration, $scheme); 549 $hash = hash_hmac('md5', $user->user_login . '|' . $expiration, $key); 550 551 $cookie = $user->user_login . '|' . $expiration . '|' . $hash; 552 553 return apply_filters('auth_cookie', $cookie, $user_id, $expiration, $scheme); 583 return compact('username', 'expiration', 'hmac', 'scheme'); 554 584 } 555 585 endif; … … 608 638 */ 609 639 function wp_clear_auth_cookie() { 640 do_action('clear_auth_cookie'); 641 610 642 setcookie(AUTH_COOKIE, ' ', time() - 31536000, ADMIN_COOKIE_PATH, COOKIE_DOMAIN); 611 643 setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, ADMIN_COOKIE_PATH, COOKIE_DOMAIN);
Note: See TracChangeset
for help on using the changeset viewer.