<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JWT &#8211; SMsoft &#8211; informatica e dintorni</title>
	<atom:link href="https://blog.smsoft.it/tag/jwt/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.smsoft.it</link>
	<description>consigli settimanali su MacOS, GNU/Linux ed Open Source</description>
	<lastBuildDate>Wed, 06 May 2020 17:47:35 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=95055</generator>
	<item>
		<title>Creare un JWT in PHP</title>
		<link>https://blog.smsoft.it/2020/06/30/creare-un-jwt-in-php/</link>
					<comments>https://blog.smsoft.it/2020/06/30/creare-un-jwt-in-php/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 30 Jun 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[JWT]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4686</guid>

					<description><![CDATA[Per quelli di voi che non hanno usato i token Web JSON, possiamo dire che si tratta di un sistema di autenticazione basato su token. Il token può inoltre contenere delle informazioni, non sensibili, tramite un payload JSON codificato. I vantaggi principali dei token Web JSON sono duplici: non è necessario utilizzare sessioni o cookie ... <a title="Creare un JWT in PHP" class="read-more" href="https://blog.smsoft.it/2020/06/30/creare-un-jwt-in-php/" aria-label="Per saperne di più su Creare un JWT in PHP">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Per quelli di voi che non hanno usato i token Web JSON, possiamo dire che si tratta di un sistema di autenticazione basato su token. Il token può inoltre contenere delle informazioni, non sensibili,  tramite un payload JSON codificato.</p>



<p class="wp-block-paragraph">I vantaggi principali dei token Web JSON sono duplici: non è necessario utilizzare sessioni o cookie per mantenere l&#8217;autenticazione e non è necessario chiamare costantemente il database per le informazioni dell&#8217;utente in quanto possono essere archiviate nel payload del token.</p>



<p class="wp-block-paragraph">Ogni token è suddiviso in tre parti e ogni parte è separata da un punto:<br></p>



<ul class="wp-block-list"><li><strong>Header:</strong> contiene informazioni sul tipo di token, generalmente JWT e sull&#8217;algoritmo di hashing utilizzato, ad esempio HMAC SHA256 o RSA.</li><li><strong>Payload:</strong> contiene tutte le informazioni che si desidera trasferire all&#8217;utente, ad esempio l&#8217;identificatore utente.</li><li><strong>Signature:</strong> protegge il token ed è un hash dell&#8217;intestazione e del payload codificati, insieme a una chiave.</li></ul>



<p class="wp-block-paragraph">Quando viene ricevuto un token, sarà necessario convalidare la firma con la chiave concordata. Se qualcuno dovesse manomettere l&#8217;intestazione o il payload, la firma non corrisponderebbe e l&#8217;autenticazione fallirebbe.</p>



<p class="wp-block-paragraph">Con queste poche righe è possibile creare un token JWT in PHP:</p>



<pre class="wp-block-preformatted">&lt;?php
$key = 'Kam124Sfa';
$header = json_encode(['typ' => 'JWT', 'alg' => 'HS256']);
$payload = json_encode(['id_user' => 111]);
$base64UrlHeader = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($header));
$base64UrlPayload = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($payload));
$signature = hash_hmac('sha256', $base64UrlHeader . "." . $base64UrlPayload, $key, true);
$base64UrlSignature = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($signature));
$jwt = $base64UrlHeader . "." . $base64UrlPayload . "." . $base64UrlSignature;

echo $jwt;
</pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/06/30/creare-un-jwt-in-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
