In this tutorial, we are going to learn, how to use JWT in Codeigniter for creating API Authorization token. We will use a JWT Class in CodeIgniter for encoding and decoding. Purpose of Authorization token is to an authorized API call to secure access.
JWT:- JSON Web Token proposed in December 2010 for HTTP Authorization headers or query string parameters, data has to be transmitted in JSON and has a payload of JSON Web Signature, JWT data represented using Base64 URL encoding.
JWS:- JSON Web Signature is a cryptographic mechanism designed to secure data.
Before starting we need JWT class and put into a helper directory of a CodeIgniter and follow things below:-
Now load this class in Controller:- First, we will create an Authorization token
Class UserAuthorization extends CI_Controller{ function create_token(){ $this->load->helper('jwt'); $jwt = new JWT(); $payload = array( 'id' => '123', 'email' => '[email protected]', 'time' => time() ); $token = $jwt->encode($payload, key);//key is a constant defined once return_api(true, Atuhorization token,$token); } }
Now, we are going to authorize the token
Class UserAuthorization extends CI_Controller{ function authorize(){ $thid->load->helper('jwt'); $headers = $ci->input->request_headers(); if(!isset($headers['Authorization'])){ return_api(false, 'Please Send Authorization token!'); } $token = $headers['Authorization']; $jwt = new JWT(); try{ $payload = $jwt->decode($token, key);//$payload is your metadata send by you & key is the contant value ones defined by you. if($tok === $token){//$tok is your saved token in databse // return_api(true, 'Access Authorize'); }else{ return_api(true, 'UnAuthorize Access Token missmatch!', 401); } }catch(Exception $e){ return_api(true, 'UnAuthorize Access!', 401); } } }
Happy Coding! If you have any doubts about this tutorial you can comment or directly contact me.
Some of the useful tutorial you may like for CodeIgniter:-
How to upload excel file in CodeIgniter
Employee Management System Php Projects