Skip to content

guilherme8787/jwt-codeigniter

Repository files navigation

Bem vindo

O repositório acima é um projeto usando CodeIgniter na versão 3.1, para testar basta entrar no diretório do projeto via linha de comando e executar

php -S localhost:80

Iniciando

Crie o helper jwt usando raw disponivel em

framework\application\helpers\jwt_helper.php

Adicione o helper ao config/autoload $autoload['helper'] = array('jwt_helper');

Crie um arquivo em config chamado jwt.php com o conteúdo:

<?php
/**
* JSON Web Token configuration params
*
* @param  string $config['jwt_secret'] Chave secreta para geração de token
* @param  string $config['jwt_expiration_time'] tempo em segundos que o token tem de vida
* @param  string $config['jwt_start_time'] tempo em segundos que o token começa a valer a partir da hora em que foi gerado
*
*/

$config['jwt_secret'] =  "OakleyTiffAtripFlackLowOuFlackJack";
$config['jwt_expiration_time'] =  3600;
$config['jwt_start_time'] =  3;

Exemplos do uso do helper no seu controller extends CI_Controller:

public  function  token(){
	$this->config->load('jwt');
	$jwt  =  new  JWT;
	$JwtSecretKey  =  $this->config->item('jwt_secret');
	$data  =  Array(
	"loginInfo" => Array(
			"id" => 1,
			"email" => "[email protected]",
			"tipo" => "admin"
		),
		"iat" => time(),
		"exp" => time() +  $this->config->item('jwt_expiration_time'),
		"nbf" => time() +  $this->config->item('jwt_start_time'),
	);
	$token  =  $jwt->encode($data, 'HS256');
	echo  $token;
}

Layout: O layout acima no Array segue o padrão rfc7519:

O conteúdo da mensagem loginInfo corresponde aos dados de login do usuário inseridos na mensagem do token

Exemplo de decode:

public  function  decode_token(){
	$token  =  'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZW1haWwiOiJ1c2VyQHVzZXIuY29tIiwidGlwbyI6ImFkbWluIn0.YHoMsgq3s9Ex9S3p3ucPpZJOqMnxD3c14datJ9bVAZk'; $jwt  =  new  JWT;
	$JwtSecretKey  =  "OakleyTiffAtripFlackLowOuFlackJack";
	$decoded_token  =  $jwt->decode($token, $JwtSecretKey, 'HS256');
	echo  json_encode($decoded_token,  JSON_PRETTY_PRINT,  200);
}

Referencias:

About

Library que manipula JWT no CodeIgniter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages