Skip to main content

JSON Web Tokens with Firebase JWT - #81


Published: December 28, 2021 | DevDrawer


Estimated Reading Time
2 minutes
Video Duration
37:58 minutes

Learn how to create your own JSON web tokens without Firebase JWT or any other JWT frameworks. In this tutorial, we will learn how to create your own JWT class in PHP.

JWT or JSON Web Tokens is is a digitally signed, trusted connection between two services (usually an API and a webserver). With JWT, you can allow access to external sources with the knowledge that the request is valid and made intentionally. This can help you develop your own API as laid out in my 33rd video called "Add Security and JWT Tokenization to Your PHP REST API, Part 6 - ". You can find that here: https://youtu.be/t43DRY3Ee9w

In this tutorial, we will be building our own JWT generator instead of using a framework like Firebase JWT (as we did in the other video). You can easily create your own JWT authentication and run it against your API to validate users or information. Without using a framework, we open our code a bit to allow us to customize it more as we see fit.

This type of project is for smaller APIs, but should get you through most of what you would need if developing something in-house or just to learn how they work.

Let me know what you think.

0:00 Intro

02:00 Creating Our JWT Class

03:40 Headers & Secret

06:20 Generate Function

15:37 Base64 Encoding

19:06 Checking for Valid Tokens

31:13 Issuer and Audience

35:05 Testing

View the source code: https://github.com/thedevdrawer/jwt-simple

Become a Patreon to show support and get exclusive access to content: https://www.patreon.com/devdrawer

Applications Used

Visual Studio Code v1.43: https://code.visualstudio.com/

WAMP v3.2.0: http://www.wampserver.com/en/

Computer Hardware:

Windows 10 Pro: https://amzn.to/3q5TyZw (Amazon)

Samsung 500GB External SSD: https://amzn.to/2ViAAAF (Amazon)

Samsung 970 EVO Plus SSD 1TB - M.2 NVMe: https://amzn.to/36jDwDy (Amazon)

Rosewill Hive-750S R750W PSU: https://amzn.to/36jiDbs (Amazon)

Phanteks Eclipse Tempered Glass Case: https://amzn.to/39qou0B (Amazon)

MSI Arsenal Gaming AMD Ryzen Motherboard: https://amzn.to/36hpAKm (Amazon)

MSI Gaming GeForce RTX 2060 Super 8GB: https://amzn.to/36hMyRm (Amazon)

LG 34UM69G-B 34-Inch 21:9 UltraWide IPS Monitor: https://amzn.to/2HSRxyI (Amazon)

Corsair 64GB (4 x 16GB) DDR4 Memory: https://amzn.to/3mlmQkI (Amazon)

AMD Ryzen 7 2700X Processor: https://amzn.to/3qdQIBF (Amazon)

Dell XPS 15 9500 15.6" Laptop / Windows: https://amzn.to/3fKEz2w (Amazon)

Lenovo ThinkPad T15 15.6" Laptop / Linux: https://amzn.to/2Jnmn33 (Amazon)

Camera:

Fujifilm X-T3: https://amzn.to/3llKBb5 (Amazon)

Fujinon XF18-55mmF2.8-4: https://amzn.to/3mfTkNb (Amazon)

Audio:

Audio Technica AT2020: https://amzn.to/2VgxU6K (Amazon)

Blue Snowball iCE: https://amzn.to/3lo1jGC (Amazon)

DISCLAIMERS:

I am a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.