PHP 의 Token 응용
gen_token();
* 2. Action Token, , :
* $isValid = Utils_Token::getInstance()->validate($token_value);
* 3. URL :
* Utils_Token::getInstance()->validate($token_value,'http://xx.xxx.com')
*
* @package Utils
* @author
* @version 1.0
* @example
* $token_value = Utils_Token::getInstance()->gen_token(); // Token
* echo 'TOKEN_VALUE:'.$token_value.'
'; // Token
* $checkValue = Utils_Token::getInstance()->validate($token_value);//
* echo $checkValue;// :1- 0-
*
*/
class Utils_Token {
const TOKEN_NAME = 'TOKEN'; //
private static $instance; //
private function __construct() { //
}
/**
*
*
* @access public
* @return Token Utils_Token
*/
public static function getInstance() {
if (! isset ( $_SESSION ))
session_start ();
if (! isset ( self::$instance ))
return new Utils_Token ();
else
return self::$instance;
}
/**
* ,
*
* @access public
* @return string
*/
public function gen_token() {
$hash = md5 ( uniqid ( rand () . 'WXT', true ) );
$n = rand ( 0, 24 );
$token = substr ( $hash, $n, 8 );
$this->_tokenValue = $token;
$this->destroy_token ();
$_SESSION [self::TOKEN_NAME] = $this->_tokenValue;
return $token;
}
/**
*
*
* @access private
* @return void
*/
private function destroy_token() {
if ($_SESSION [self::TOKEN_NAME])
unset ( $_SESSION [self::TOKEN_NAME] );
}
/**
*
*
* @access public
* @param string $token
*
* @param string $url
* URL
* @return boolean 1- 0-
*
*/
public function validate($token, $url = '') {
if ($token == $_SESSION [self::TOKEN_NAME]) {
$this->destroy_token ();
return 1;
} elseif ($url) {
$this->destroy_token ();
Header ( "Location: $url" );
} else {
$this->destroy_token ();
return 0;
}
}
}
/*
$token_value = Utils_Token::getInstance()->gen_token(); // Token
echo 'TOKEN_VALUE:'.$token_value.'
'; // Token
$checkValue = Utils_Token::getInstance()->validate($token_value);//
echo $checkValue;// :1- 0-
*/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
reset_password_token(invitation_token)을 덮어쓰는 Mac Sierra Safari에서!OS 버전: Mac Sierra 10.12.6 브라우저: Safari 11.0.1 OS : Red Hat Enterprise 6.2 (낡고 부끄러운) 언어 : ruby2.1 (이쪽도 낡고 부끄러운) Rails 4.1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.