2015-12-13 57 views
0

IM全光照下的PHP函數返回的智威湯遜的有效載荷的「UID」要求的值:JWT解碼包括不必要的HTML標籤

function isLoggedIn($headers) 
 
\t { 
 
\t \t $ret = false; 
 
\t \t if (!empty($headers['Authorization'])) 
 
       { 
 
        $parts = explode('.', $headers['Authorization']); 
 
        echo base64_decode($parts[1]); 
 
        return 7; //currently set a 7 just function 
 
       } 
 
    }
字符串中

echo base64_decode($parts[1]); 
返回

有html標籤包括

<br />"iss": "www.thetenticle.com",<br />"iat": "1449405778",<br />"nbf": "1449405838",<br />"exp": "1449492238",<br />"uid": "batman"<br />} 

我不想要這個,因爲我需要找出'uid'的值是什麼。 我做錯了什麼?

ps我知道有更多的要處理的jwt比這個,但現在我只需要獲取用戶登錄的ID。

我基本上需要對SO索賠

回答

0

從另一個answer數組:

的問題是關係到事實的base64字母表不是網址安全。在這種特殊情況下,您的base64編碼的字符串包含一個+,它被解釋爲一個空格。

php-jwt代碼安全解碼輸入:

public static function urlsafeB64Decode($input) { 
    $remainder = strlen($input) % 4; 
    if($remainder) { 
     $padlen = 4 - $remainder; 
     $input .= str_repeat('=', $padlen); 
    } 
    return base64_decode(strtr($input, '-_', '+/')); 
}