Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert die Token-Instanzmethode

PHP implementiert die Token-Instanzmethode

小云云
小云云Original
2018-05-14 09:22:0620736Durchsuche

Dieser Artikel teilt Ihnen hauptsächlich die Beispielmethode zur Implementierung von Token in PHP mit und hofft, allen zu helfen.

public function set_token($user_name){
    $information ['state'] = false;    $time = time();    $header = array(        'typ' => 'JWT'
    );    $array = array(        'iss' => 'auth', // 权限验证作者
        'iat' => $time, // 时间戳
        'exp' => 3600, // token有效期,1小时
        'sub' => 'demo', // 案例
        'user_name' => $user_name
    ) // 用户名
    ;    $str = base64_encode(json_encode($header)) . '.' . base64_encode(json_encode($array)); // 数组转成字符
    $str = urlencode($str); // 通过url转码
    $information ['token'] = $str;    $this->save_token($user_name, $information ['token']); // 将用户token存放进用户数据库
    $information ['username'] = $user_name; // 返回用户名
    $information ['state'] = true;    return $information;
}

Hinweise:
1. Funktion save_token(), speichert das aktuelle Token des Benutzers in der Benutzertabelle zur Überprüfung
2. Verschlüsselungs- und Entschlüsselungsfunktionen base64_decode
(1) Verschlüsselung:

$str='www.php.cn'; //定义字符串 
echo base64_encode($str);  // 输出编码后的内容为: d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==

(2) Entschlüsselung:

$str='d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==';     //定义字符串 
echo base64_decode($str); //输出解码后的内容

3. Arrays und Objekte, JSON-Format konvertieren und umkehren
(1) json_encode() Wird zum Konvertieren von Arrays verwendet und Objekte in das JSON-Format:

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);  
echo json_encode($arr); 
结果为:
{"a":1,"b":2,"c":3,"d":4,"e":5}

(2) json_decode() wird verwendet, um JSON-Text in die entsprechende PHP-Datenstruktur zu konvertieren:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
结果就是生成一个PHP对象:
object(stdClass)#1 (5) {    
["a"] => int(1)    
["b"] => int(2)    
["c"] => int(3)    
["d"] => int(4)    
["e"] => int(5)  
} 

4 , chinesische Verarbeitung

echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+      //将中文文字转换成urlencode文字编码
echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.       //将urlencode文字编码转换成中文文字

   

public function set_token($user_name){
    $information ['state'] = false;    
    $time = time();    
    $header = array(        'typ' => 'JWT'
    );    $array = array(        'iss' => 'auth', // 权限验证作者
        'iat' => $time, // 时间戳
        'exp' => 3600, // token有效期,1小时
        'sub' => 'demo', // 案例
        'user_name' => $user_name
    ) // 用户名
    ;    
    $str = base64_encode(json_encode($header)) . '.' . base64_encode(json_encode($array)); // 数组转成字符
    $str = urlencode($str); // 通过url转码
    $information ['token'] = $str;    
    $this->save_token($user_name, $information ['token']); // 将用户token存放进用户数据库
    $information ['username'] = $user_name; // 返回用户名
    $information ['state'] = true;    return $information;
}

Hinweise:
1. Funktion save_token(), speichert das aktuelle Token des Benutzers zur Überprüfung
2
(1) Verschlüsselung:

$str='www.jb51.net 脚本之家'; 
//定义字符串 echo base64_encode($str); 
 // 输出编码后的内容为: d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==

(2) Entschlüsselung:

$str='d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==';     
//定义字符串 echo base64_decode($str); //输出解码后的内容

3. Arrays und Objekte, in JSON-Format konvertieren und umkehren
(1) json_encode() wird verwendet, um Arrays und Objekte in das JSON-Format zu konvertieren:

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);  
echo json_encode($arr); 
结果为:
{"a":1,"b":2,"c":3,"d":4,"e":5}

(2) json_decode() wird verwendet, um JSON-Text in entsprechende PHP-Datenstruktur zu konvertieren:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
结果就是生成一个PHP对象:
object(stdClass)#1 (5) {    
["a"] => int(1)    
["b"] => int(2)    
["c"] => int(3)    
["d"] => int(4)    
["e"] => int(5)  
} 

4. Chinesische Verarbeitung

echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+      //将中文文字转换成urlencode文字编码
echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.       //将urlencode文字编码转换成中文文字

Verwandte Empfehlungen:

Lösung für WeChat Development Token-Überprüfungsfehler

Wie der Singleton-Modus das access_token löst globales Cache-Problem

So überprüfen Sie das Token, antworten auf Inhalte und senden Nachrichten an das öffentliche WeChat-Konto in PHP

Das obige ist der detaillierte Inhalt vonPHP implementiert die Token-Instanzmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn