GS JWT Authentication for WP REST API

GS JWT Authentication for WP REST API

Wordpress plugin

Install on Wordpress

App Details

Extends the WP REST API using JSON Web Tokens as an authentication method.
GS JWT plugin provides to encode and decode JSON Web Tokens (JWT), conforming to RFC 7519.

GET OTP and send notification by mail or SMS service

Support and Requests please in Github: https://github.com/gauravin213/gs-jwt

REQUIREMENTS

PHP

Minimum PHP version: 5.3.0

PHP HTTP Authorization Header enable

Most of the shared hosting has disabled the HTTP Authorization Header by default.

To enable this option you’ll need to edit your .htaccess file adding the following

RewriteEngine on RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] 

WPENGINE

To enable this option you’ll need to edit your .htaccess file adding the following

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 

CONFIGURATION

The JWT needs to Add constant in the wp-confige.php file

define( 'GS_WP_JWT_SECRET_KEY', 'your-top-secret-key' ); define( 'GS_WP_JWT_ALGO', 'HS256' ); define( 'GS_WP_JWT_EXPIRY', (60 * 60) ); //seconds * minuts define( 'GS_WP_OTP_EXPIRY', 10); //minuts 

Namespace and Endpoints

When the plugin is activated, a new namespace is added

/gs-jwt/v1 

Also, two new endpoints are added to this namespace

Endpoint | HTTP Verb

/wp-json/gs-jwt/v1/login | POST

/wp-json/gs-jwt/v1/token/validate | POST

/wp-json/gs-jwt/v1/get-otp | POST

/wp-json/gs-jwt/v1/verify-otp | POST

/wp-json/gs-jwt/v1/register_user | POST

/wp-json/gs-jwt/v1/register_userbymobile | POST

USAGE

  1. Get JSON web token

Request method:

POST /wp-json/gs-jwt/v1/login Body{ "username": "enter username", "password": "enter password" } 

Reponse

{ "data": { "id": "1", "user_login": "admin", "user_pass": null, "user_nicename": "admin", "user_email": "[email protected]", "user_url": "", "user_registered": "2020-08-11 07:35:37", "user_activation_key": "", "user_status": "0", "display_name": "admin", "roles": [ "administrator" ], "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjFcL3dvcmRwcmVzcyIsImlhdCI6MTY0MTk3MDIwNSwibmJmIjoxNjQxOTcwMjA1LCJleHAiOjE2NDE5NzM4MDUsImRhdGEiOnsidXNlciI6eyJpZCI6IjEifX19.gRF_aNsmhQ8kqXYdKbm6dIA7zTlhcCU-e_cpP9pQDyM" } } 
  1. Validate JSON web token

Request method:

POST /wp-json/gs-jwt/v1/token/validate Make a POST request sending the Authorization header Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjFcL3dvcmRwcmVzcyIsImlhdCI6MTY0MTk3MDIwNSwibmJmIjoxNjQxOTcwMjA1LCJleHAiOjE2NDE5NzM4MDUsImRhdGEiOnsidXNlciI6eyJpZCI6IjEifX19.gRF_aNsmhQ8kqXYdKbm6dIA7zTlhcCU-e_cpP9pQDyM 

Reponse

{ "code": "jwt_auth_valid_token", "data": { "status": 200 } } 
  1. Get otp by billing mobile number

Request method:

POST /wp-json/gs-jwt/v1/get-otp Body{ "mobile": "enter mobile number" } 

Reponse

{ "data": { "otp": 249225, "message": "SUCCESS", "otp_use_staus": "0", "notification": { "mail_send_status": 0, "sms_send_status": 0 } } } 
  1. Verify otp and mobile number to login

Request method:

POST /wp-json/gs-jwt/v1/verify-otp Body{ "otp": "enter otp", "mobile": "enter mobile number" } 

Reponse

{ "data": { "id": "1", "user_login": "admin", "user_pass": null, "user_nicename": "admin", "user_email": "[email protected]", "user_url": "", "user_registered": "2020-08-11 07:35:37", "user_activation_key": "", "user_status": "0", "display_name": "admin", "roles": [ "administrator" ], "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjFcL3dvcmRwcmVzcyIsImlhdCI6MTY0MTk3MDIwNSwibmJmIjoxNjQxOTcwMjA1LCJleHAiOjE2NDE5NzM4MDUsImRhdGEiOnsidXNlciI6eyJpZCI6IjEifX19.gRF_aNsmhQ8kqXYdKbm6dIA7zTlhcCU-e_cpP9pQDyM" } } 
  1. Register user

Request method:

POST /wp-json/gs-jwt/v1/register_user Body{ "username": "example", "password": "example@123", "email": "[email protected]", "mobile": "1122336699" } 

Reponse

{ "data": { "id": 29, "user_login": "example", "user_pass": null, "user_nicename": "example", "user_email": "[email protected]", "user_url": "", "user_registered": "2022-01-12 07:45:29", "user_activation_key": "", "user_status": "0", "display_name": "example", "roles": [ "customer" ], "billing_phone": "1122336699" }, "code": 200, "message": "Registration was Successful" } 
  1. Register user by mobile number

Request method:

POST /wp-json/gs-jwt/v1/register_userbymobile Body{ "mobile": "1122336699" } 

Reponse

{ "data": { "id": 32, "user_login": "1144556638", "user_nicename": "1144556638", "user_registered": "2022-01-13 06:29:30", "display_name": "1144556638", "roles": [ "customer" ], "billing_phone": "1144556638" }, "code": 200, "message": "Registration was Successful" } 

Sample add SMS and email notification

/* * Send notification * Default mail_send_status = 0, sms_send_status = 0 */ function gs_wp_jwt_send_notification_fun( $data, $user_id, $otp, $mobile ) { //Write mail send code here $from = get_option('admin_email'); $to = get_user_meta($user_id, 'billing_email', true); $subject = "OTP Verification"; $message = "OTP number: {$opt} will expire in 10 min"; $headers = "From: ".$from; $result = wp_mail( $to, $subject, $message, $headers); if ($result) { $data['mail_send_status'] = 1; } //end mail send //Write sms send api code here /*if ($sms_send_status) { $data['sms_send_status'] = 1; } //ens sms send*/ return $data; } add_filter( 'gs_wp_jwt_send_notification', 'gs_wp_jwt_send_notification_fun', 10, 4 ); 

Pricing

Starting from $0 per month.

Check Out the Google Maps Widget

By Common Ninja

Google MapsTry For Free!

App Info

Rating

Reviewers

No reviews

Tags

json web authentication
jwt
otp
wp-api
wp-json

Developed By

Gaurav Sharma

Quick & Easy

Find the Best Wordpress plugins for you

Common Ninja has a large selection of powerful Wordpress plugins that are easy to use, fully customizable, mobile-friendly and rich with features — so be sure to check them out!

Testimonial

Testimonial plugins for Wordpress

Galleries

Galleries plugins for Wordpress

SEO

SEO plugins for Wordpress

Contact Form

Contact Form plugins for Wordpress

Forms

Forms plugins for Wordpress

Social Feeds

Social Feeds plugins for Wordpress

Social Sharing

Social Sharing plugins for Wordpress

Events Calendar

Events Calendar plugins for Wordpress

Sliders

Sliders plugins for Wordpress

Analytics

Analytics plugins for Wordpress

Reviews

Reviews plugins for Wordpress

Comments

Comments plugins for Wordpress

Portfolio

Portfolio plugins for Wordpress

Maps

Maps plugins for Wordpress

Security

Security plugins for Wordpress

Translation

Translation plugins for Wordpress

Ads

Ads plugins for Wordpress

Video Player

Video Player plugins for Wordpress

Music Player

Music Player plugins for Wordpress

Backup

Backup plugins for Wordpress

Privacy

Privacy plugins for Wordpress

Optimize

Optimize plugins for Wordpress

Chat

Chat plugins for Wordpress

Countdown

Countdown plugins for Wordpress

Email Marketing

Email Marketing plugins for Wordpress

Tabs

Tabs plugins for Wordpress

Membership

Membership plugins for Wordpress

popup

popup plugins for Wordpress

SiteMap

SiteMap plugins for Wordpress

Payment

Payment plugins for Wordpress

Coming Soon

Coming Soon plugins for Wordpress

Ecommerce

Ecommerce plugins for Wordpress

Customer Support

Customer Support plugins for Wordpress

Inventory

Inventory plugins for Wordpress

Video Player

Video Player plugins for Wordpress

Testimonials

Testimonials plugins for Wordpress

Tabs

Tabs plugins for Wordpress

Social Sharing

Social Sharing plugins for Wordpress

Social Feeds

Social Feeds plugins for Wordpress

Slider

Slider plugins for Wordpress

Reviews

Reviews plugins for Wordpress

Portfolio

Portfolio plugins for Wordpress

Membership

Membership plugins for Wordpress

Forms

Forms plugins for Wordpress

Events Calendar

Events Calendar plugins for Wordpress

Contact

Contact plugins for Wordpress

Comments

Comments plugins for Wordpress

Analytics

Analytics plugins for Wordpress

Common Ninja Apps

Some of the best Common Ninja plugins for Wordpress

Browse our extensive collection of compatible plugins, and easily embed them on any website, blog, online store, e-commerce platform, or site builder.

Google Maps for Wordpress logo

Google Maps

Show business locations clearly with a Google Maps widget that displays multiple points, detailed info, and customizable styles to help visitors find you easily.

Info List for Wordpress logo

Info List

An Info List presents key details in a clear, structured format to improve user experience and support conversions.

Scroll to Top for Wordpress logo

Scroll to Top

A scroll to top button that helps visitors move back to the top of long pages quickly, improving navigation and overall browsing flow.

Subscription Button for Wordpress logo

Subscription Button

Use a subscription button to streamline recurring payments, simplify signup, and help increase conversions with seamless PayPal or Stripe integration.

Company Branch Flip Cards for Wordpress logo

Company Branch Flip Cards

Display locations with company branch flip cards that help customers find nearby offices, understand key details, and enjoy a smoother overall experience.

Contact Form for Wordpress logo

Contact Form

Use a contact form so visitors can send messages, submit inquiries, and help you collect leads and improve user experience.

Cookie Banner for Wordpress logo

Cookie Banner

Use a Cookie Banner to inform visitors about cookies on your site and let them manage their consent in a clear, structured way.

Job Application Form for Wordpress logo

Job Application Form

Collect candidate information with a job application form that organizes submissions, streamlines hiring, and helps you manage applicants efficiently.

Restaurant Menu for Wordpress logo

Restaurant Menu

Create an online restaurant menu that organizes dishes, highlights key items, and helps visitors explore options with confidence.

TikTok Carousel for Wordpress logo

TikTok Carousel

Show TikTok videos with a TikTok carousel that arranges clips in a smooth, customizable layout to boost engagement and keep visitors watching.

Timeline for Wordpress logo

Timeline

Use a timeline widget to display events and milestones in chronological order with images and text so visitors understand your story clearly.

My Reviews on Amazon for Wordpress logo

My Reviews on Amazon

Show your Amazon product reviews with My Reviews on Amazon to build trust, boost credibility, and help visitors make confident purchase decisions.

More plugins

plugins You Might Like

Discover Apps By Platform

Discover the best apps for your website

WordPress
Wix
Shopify
Weebly
Webflow
Joomla
PrestaShop
Shift4Shop
WebsiteX5
MODX
Opencart
NopCommerce

Common Ninja Search Engine

The Common Ninja Search Engine platform helps website builders find the best site widgets, apps, plugins, tools, add-ons, and extensions! Compatible with all major website building platforms - big or small - and updated regularly, our Search Engine tool provides you with the business tools your site needs!

Multiple platforms