Simple JWT Login – Allows you to use JWT on REST endpoints.

Por nicu_m
(45 avaliações)
Baixar
  • Versão:
    3.5.8
  • Última atualização:
    há 7 dias
  • Instalações ativas:
    mais de 5 mil
  • Versão do WordPress:
    4.4.0 ou maior
  • Testado até o WordPress:
    6.7.2
  • Versão do PHP:
    5.5 ou maior
  • Tags:

Hospedagem WordPress com plugin Simple JWT Login – Login and Register to WordPress using JWT

Onde devo hospedar o plugin Simple JWT Login – Login and Register to WordPress using JWT?

Este plugin pode ser hospedado em qualquer provedor que tenha WordPress instalado. Recomendamos optar por um provedor de hospedagem confiável, com servidores adaptados para WordPress, como o serviço de hospedagem de sites da MCO2.

Hospedando o plugin Simple JWT Login – Login and Register to WordPress using JWT em um provedor de confiança

A MCO2, além de instalar o WordPress na versão mais atual para seus clientes, disponibiliza o WP SafePress, um sistema singular que assegura e aumenta a performance do seu site ao mesmo tempo.

Por que a Hospedagem WordPress funciona melhor na MCO2?

A Hospedagem WordPress funciona melhor pois a MCO2 possui servidores otimizados para WordPress. A instalação de WordPress é diferente de uma instalação trivial, pois habilita imediatamente recursos como otimização automática de imagens e fotos, proteção da página de login, bloqueio de atividades maliciosas diretamente no firewall, cache avançado e HTTPS ativado por padrão. São recursos que potencializam seu WordPress para a máxima segurança e o máximo desempenho.

Simple JWT Login is a FREE WordPress plugin that allows you to use a JWT on WordPress REST endpoints.

This plugin allows you to log in, register, authenticate, delete and change user password to a WordPress website using a JWT.

It’s main purpose is to allow you to connect a mobile App or other websites with WordPress.

Plugin Documentation Site: https://simplejwtlogin.com

Some awesome features

  • Auto-login using JWT and AUTH_KEY
  • Register new users via API
  • Delete WordPress users based on a JWT
  • Reset user password
  • Allow auto-login / register / delete users only from specific IP addresses
  • Allow register users only from a specific domain name
  • API Route for generating new JWT
  • Get JWT from URL, SESSION, COOKIE or HEADER
  • Pass request parameters to login URL
  • CORS settings for plugin Routes
  • Hooks
  • JWT Authentication
  • Allow access private endpoints with JWT
  • Protect endpoints with JWT
  • beta Google OAuth Integration
  • beta Use Google JWT on all endpoints

Check the plugin website for more features.

Login User

This plugin is customizable and offers you multiple methods to log in to you website, based on multiple scenarios.

In order to login, users have to send JWT. The plugin, validates the JWT, and if everything is OK, it can extract the WordPress email address or user ID.
Users can specify the exact key of the JWT payload where this information can be found.

Here are the methods how you can send the JWT in order to auto-login:

  1. URL
  2. Header
  3. Cookie
  4. Session

If the JWT is present in multiple places ( like URL and Header), the JWT will be overwritten.

This plugin supports multiple JWT Decryption algorithms, like: HS256, HS512, HS384, RS256,RS384 and RS512.

After the user is logged in you can automatically redirect the user to a page like:

  • Dashboard
  • Homepage
  • or any other custom Page ( this is mainly used for redirecting users to a landing page)

You can attach to your redirect a URL parameter redirectUrl that will be used for redirect instead of the defined ones.
In order to use this, you have to enable it by checking the option Allow redirect to a specific URL.

Also, redirect after login offers some variables that you can use in the customURL and redirectUrl.
Here are the variables which you can use in your URL:
{{site_url}} : Site URL
{{user_id}} : Logged in user ID
{{user_email}} : Logged in user email
{{user_login}} : Logged in username
{{user_first_name}} : User first name
{{user_last_name}} : User last name
{{user_nicename}} : User nice name

You can generate dynamic URLs with these variables, and, before the redirect, the specific value will be replaced.

Here is an example:

http://yourdomain.com?param1={{user_id}}&param2={{user_login}}

Also, this plugin allows you to limit the auto-login based on the client IP address.
If you are concerned about security, you can limit the auto-login only from some IP addresses.

Read more on our website.

Register Users

This plugin also allows you to create WordPress users.

This option is disabled by default, but you can enable it at any time.

In order to create users, you just have to make a POST request to the route URL, and send an email and a password as parameter and the new user will be created.

You can select the type for the new users: editor, author, contributor, subscriber, etc.

Also, you can limit the user creating only for specific IP addresses, or specific email domains.

Another cool option is “Generate a random password when a new user is created”.
If this option is selected, the password is no more required when a new user is created a random password will be generated.

Another option that you have for register user is “Initialize force login after register”.
When the user registration is completed, the user will continue on the flow configured on login config.

If auto-login is disabled, this feature will not work and the register user will go on a normal flow and return a json response.

If you want to add custom user_meta on user creation, just add the parameter user_meta with a json. This will create user_meta for the new user.

{
    "meta_key":"meta_value",
    "meta_key2":"meta_value"
}

These properties can be passed in the request when the new user is created.

  • email : (required) (string) The user email address.
  • password : (required) (string) The plain-text user password.
  • user_login : (string) The user’s login username.
  • user_nicename : (string) The URL-friendly username.
  • user_url : (string) The user URL.
  • display_name : (string) The user’s display name. Default is the user’s username.
  • nickname : (string) The user’s nickname. Default is the user’s username.
  • first_name : (string) The user’s first name. For new users, will be used to build the first part of the user’s display name if $display_name is not specified.
  • last_name : (string) The user’s last name. For new users, will be used to build the second part of the user’s display name if $display_name is not specified.
  • description : (string) The user’s biographical description.
  • rich_editing : (string) Whether to enable the rich-editor for the user. Accepts ‘true’ or ‘false’ as a string literal, not boolean. Default ‘true’.
  • syntax_highlighting : (string) Whether to enable the rich code editor for the user. Accepts ‘true’ or ‘false’ as a string literal, not boolean. Default ‘true’.
  • comment_shortcuts : (string) Whether to enable comment moderation keyboard shortcuts for the user. Accepts ‘true’ or ‘false’ as a string literal, not boolean. Default ‘false’.
  • admin_color : (string) Admin color scheme for the user. Default ‘fresh’.
  • use_ssl : (bool) Whether the user should always access the admin over https. Default false.
  • user_registered : (string) Date the user registered. Format is Y-m-d H:m:s.
  • user_activation_key : (string) Password reset key. Default empty.
  • spam : (bool) Multisite only. Whether the user is marked as spam. Default false.
  • show_admin_bar_front : (string) Whether to display the Admin Bar for the user on the site’s front end. Accepts ‘true’ or ‘false’ as a string literal, not boolean. Default ‘true’.
  • locale : (string) User’s locale. Default empty.

Read More on our website.

Delete User

Delete user it is disabled by default.

In order to delete a user, you have to configure where to search the details in the JWT.
You can delete users by WordPress User ID or by Email address.

Also, you have to choose the JWT parameter key where email or user ID it is stored in the JWT.

Also, you can limit the deletion of users to specific IP addresses for security reasons.

Reset Password

Reset password and change password endpoints are disabled by default.

This plugin allows you to send the reset password endpoint, just by calling an endpoint. An email with the code will be sent to a specific email address.

Also, you are able to customize this email, or even not send at email at all.

The change password endpoint, changes the user password, based on the reset password code.

Read More on our website.

Authentication

This plugin allows users to generate JWT tokens based from WordPress user email and password.

In order to Get a new JWT, just make a POST request to /auth route with your WordPress email and password ( or password_hash) and the response will look something like this:

 {
     "success": true,
     "data": {
         "jwt": "NEW_GENERATED_JWT_HERE"
     }
 }

If you want to add extra parameters in the JWT payload, just send the parameter payload on /auth endpoint, and add a json with the values you want to be added in the payload.

At some point, the JWT will expire.
So, if you want to renew it without having to ask again for user and password, you will have to make a POST request to the auth/refresh route.

This will generate a response with a new JWT, similar to the one that /auth generates.

If you want to get some details about a JWT, and validate that JWT, you can call /auth/validate. If you have a valid JWT, details about the available WordPress user will be returned, and some JWT details.

If you want to revoke a JWT, access /auth/revoke and send the jwt as a parameter.

The plugin auto-generates the example URL you might need to test these scenarios.

Read More on our website.

Auth codes

Auth codes are optional, but you can enable them for Auto-login, Register User and Delete user.

This feature allows you to add a layer of protection to your API routes.

The Auth codes contains 3 parts:
1. Authentication Key: This is the actual code that you have to add in the request.
2. WordPress new User Role: can be used when you want to create multiple user types with the create user endpoint. If you leave it blank, the value configured in the ‘Register Settings’ will be used.
3. Expiration Date: This allows you to set an expiration date for you auth codes. The format is `Y-M-D H:m:s’. Example : 2020-12-24 23:00:00. If you leave it blank, it will never expire.

Expiration date format: year-month-day hours:minutes:seconds

Read More on our website.

Hooks

This plugin allows advanced users to link some hooks with the plugin and perform some custom scripts.
Some available hooks:

  • simple_jwt_login_login_hook

    • type: action
    • parameters: Wp_User $user
    • description: This hook it is called after the user has been logged in.
  • simple_jwt_login_redirect_hook

    • type: action
    • parameters: string $url, array $request
    • description: This hook it is called before the user it will be redirected to the page he specified in the login section.
  • simple_jwt_login_register_hook

    • type: action
    • parameters: Wp_User $user, string $plain_text_password
    • description: This hook it is called after a new user has been created.
  • simple_jwt_login_delete_user_hook

    • type: action
    • parameters: Wp_User $user
    • description: This hook it is called right after the user has been deleted.
  • simple_jwt_login_jwt_payload_auth

    • type: filter
    • parameters: array $payload, array $request
    • return: array $payload
    • description: This hook is called on /auth endpoint. Here you can modify payload parameters.
  • simple_jwt_login_no_redirect_message

    • type: filter
    • parameters: array $payload, array $request
    • return: array $payload
    • description: This hook is called on /autologin endpoint when the option No Redirect is selected. You can customize the message and add parameters.
  • simple_jwt_login_reset_password_custom_email_template

    • type: filter
    • parameters: string $template, array $request
    • return: string $template
    • description: This is executed when POST /user/reset_password is called. It will replace the email template that has been added in Reset Password settings

View full list of hooks on https://simplejwtlogin.com/docs/hooks.

CORS

The CORS standard it is needed because it allows servers to specify who can access its assets and how the assets can be accessed.
Cross-origin requests are made using the standard HTTP request methods like GET, POST, PUT, DELETE, etc.

Read More on our website.

Protect endpoints

This option is disabled by default. In order to enable it, you need to set “Protect endpoints enabled” to true.

This feature comes with 2 actions:
– Apply on All REST Endpoints
– Apply only on specific REST endpoints

When you choose Apply on All REST Endpoints, you will be able to whitelist some endpoints from your WordPress REST by adding them to the whitelist section.
For example, If you only want to allow users to access the wp/v2/posts endpoint without having to provide the JWT, you save in the whitelist section wp/v2/posts

When you choose Apply only on specific endpoints, you will have to add all the endpoints you want to be protected by JWT.

When an endpoint is protected, and you don’t provide a JWT, you will get the following response:

{
   "success":false,
   "data":{
      "message":"Your are not authorized to access this endpoint.",
      "errorCode":403,
      "type":"simple-jwt-login-route-protect"
   }
}

Read More on our website.

Integration

PHP

In order to easily integrate your app/site with simple-jwt-login, we have developed a composer package.

composer require nicumicle/simple-jwt-login-client-php

You can check the package page for more details and code examples.

Javascript

Also, there is a Javascript SDK that you can install with npm or yarn.

npm install "simple-jwt-login"

or

yarn add "simple-jwt-login"

Capturas de tela

Dashboard

Dashboard

General Settings for JWT

General Settings for JWT

Auto-login configuration

Auto-login configuration

Register new users configuration

Register new users configuration

Delete user configuration

Delete user configuration

Reset Password configuration

Reset Password configuration

Authentication configuration for generating and refresh Json Web Tokens

Authentication configuration for generating and refresh Json Web Tokens

Auth Codes

Auth Codes

Available Hooks

Available Hooks

CORS

CORS

Protect endpoints

Protect endpoints

Plugins semelhantes

InfiniteWP Client
(171 avaliações)

Install this plugin on unlimited sites and manage them all from a central dashboard. This plugin communicates with your InfiniteWP Admin Panel.

Disable REST API
(37 avaliações)

Disable the use of the REST API on your website to site users. Now with User Role support!

Mailgun for WordPress
(47 avaliações)

Easily send email from your WordPress site through Mailgun using the HTTP API or SMTP.

WPGraphQL
(47 avaliações)

WPGraphQL adds a flexible and powerful GraphQL API to WordPress, enabling efficient querying and interaction with your site's data.

ACF to REST API
(34 avaliações)

Exponha os campos do ACF nos endpoints da REST API do WordPress

Contact Form to Any API
(24 avaliações)

Contact form 7 to Any API is most powerful plugin to send CF7 data to any third party services. It can be use to send data to CRM or any REST API.