Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Verification API

25 sites Security covered
View on drupal.org

This module provides a system for verifying user actions, such as password resets or email changes, in decoupled Drupal environments. It allows for multiple verification methods to be used and supports verifying both user login and specific operations independently.

This drupal module provides the foundation to implement verification for various operations (e.g. reset password, change email or passwordless logins) that a drupal user can do. That is done by having multiple VerificationProvider services verifying a request.

Motivation

In decoupled scenarious, some operations like updating a user email, resetting the password or cancelling a user account need additional verification as an additional security measure.

Additionally some operations must also be preceeded by a login, because the user might not be able to login (e.g. when performing a password reset). The verification must then be able to verify the login AND the operation (e.g. the password reset).

This module tries to solve this problem by providing the foundation for a sophisticated verification system.

Functionality

The Verification API revolves around having Tagged Services that implement the VerificationProviderInterface interface. The providers job is to verify a given request and return a VerificationResult.

Given that a login may preceed the actual operation, the verification is split into two parts:

  1. (optional) Verify if the verification method is eligible for a login
  2. Verify if the verification method is eligible for the operation

The verification method MUST be independendtly invalidated for login and the operation!

Therefore each provider must implement the verifyLogin and verifyOperation methods.

Note Each provider is responsible to invalidate the verification method once it has been used, and to implement appropriate security measures, like prohibiting brute force attacks!

The verification is strictly tied to the following aspects:

  • Operation - A string describing what operation should be made
  • User - The drupal user that the operation is performed on
  • Email - If a different email address then the user's should be used

If these change between verification start and finish, the verification MUST fail.

Verification Providers

Here is a curated list of verification providers that utilize the Verification API:

If you want your verification provider listed, feel free to open an issue.

More information about the module can be found in the project readme:
> View Readme <

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

2 tracked projects depend on this one

Activity

Tracked releases
7
Tracked since
Oct 2024
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 7
Maintenance
Dormant

Release Timeline

Releases

Version Type Core Release date
2.0.0-rc5 Pre-release 10–11 Jan 17, 2025
2.0.0-rc4 Pre-release 10–11 Dec 17, 2024
2.0.0-rc3 Pre-release 10–11 Dec 11, 2024
2.0.0-rc2 Pre-release 10–11 Dec 11, 2024
2.0.0-rc1 Pre-release 10–11 Dec 11, 2024
2.0.0-beta1 Pre-release 10–11 Oct 17, 2024
2.x-dev Dev 10–11 Oct 14, 2024