Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wberredo/nonce
Use wordpress nonce functions in a object oriented environment.
https://github.com/wberredo/nonce
nonce wordpress wordpress-library wordpress-plugin
Last synced: 19 days ago
JSON representation
Use wordpress nonce functions in a object oriented environment.
- Host: GitHub
- URL: https://github.com/wberredo/nonce
- Owner: WBerredo
- License: mit
- Created: 2017-02-25T04:55:53.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-03-31T15:22:07.000Z (over 7 years ago)
- Last Synced: 2024-10-08T18:14:14.846Z (29 days ago)
- Topics: nonce, wordpress, wordpress-library, wordpress-plugin
- Language: PHP
- Size: 22.5 KB
- Stars: 4
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: License.md
Awesome Lists containing this project
README
[![Latest Stable Version](https://poser.pugx.org/wberredo/nonce/v/stable)](https://packagist.org/packages/wberredo/nonce)
[![Latest Unstable Version](https://poser.pugx.org/wberredo/nonce/v/unstable)](https://packagist.org/packages/wberredo/nonce)
[![License](https://poser.pugx.org/wberredo/nonce/license)](https://packagist.org/packages/wberredo/nonce)# nonce
Use wordpress nonce functions in a object oriented environment.## Installation
Add this package as requirement at your composer.json file and
then run 'composer update'
```json
"wberredo/nonce": "1.0.*"
```Or directly run
```bash
composer require wberredo/nonce
```## Setup
If you want to change some configs before you start to generate
nonces, you will use *Nonce_Config* class.
```php
// set lifetime for 4 hours
Nonce_Config::set_nonce_lifetime( 4 * HOUR_IN_SECONDS );// set message showed when showAys is called
Nonce_Config::set_error_message( "Are you sure" );
```## Usage
To create a nonce you have to use the *Nonce_Generator* class and
to verify a nonce already created you will need the *Nonce_Verifier*
class.### Nonce_Generator
To generate a nonce
```php
$nonce_gen = new Nonce_Generator( "default-action" );
$nonce = $nonce_gen->generate_nonce();
```To generate a URL nonce
```php
// you can also set parameters with set functions
$nonce_gen = new Nonce_Generator();
$complete_url = $nonce_gen
->set_url( "http://github.com/WBerredo" )
->set_action( "default_action" )
->generate_nonce_url();
```To retrieve a nonce field.
```php
$nonce_gen = new Nonce_Generator();
$nonceField = $nonce_gen
->set_action( "default_action" )
->generate_nonce_field( "nonce", "referer", "do_not_echo" );
// to print the nonce field you have to set the last param as true
$nonce_gen
->generate_nonce_field( "nonce", "referer", "echo" );
```To Display 'Are you sure you want to do this?' message
(or the new message set with Nonce_Config#setErrorMessage)
to confirm the action being taken.
```php
Nonce_Generator::show_ays( 'action' );
```
### Nonce_Verifier
To verify a nonce
```php
if ( Nonce_Verifier::verify( $nonce, $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
```To verify a URL nonce
```php
if ( Nonce_Verifier::verify_url( $complete_url, $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
```To tests either if the current request carries a valid nonce,
or if the current request was referred from an administration screen
```php
if ( Nonce_Verifier::verify_admin_referer( $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
```To verify the AJAX request, to prevent any processing of
requests which are passed in by third-party sites or systems.
```php
if ( Nonce_Verifier::verify_ajax_referer( $defaultAction ) ) {
// if is valid
} else {
// if is not valid
}
```## Contributing
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D## Tests
1. **Install PHPUnit.** WordPress uses PHPUnit, the standard for unit
testing PHP projects. Installation instructions can be found in
[the PHPUnit manual](https://phpunit.de/manual/current/en/installation.html)
or on the [PHPUnit Github repository](https://github.com/sebastianbergmann/phpunit#readme).2. **Check out the test repository.** The WordPress tests live in
the core development repository,
at https://develop.svn.wordpress.org/trunk/:
```bash
svn co https://develop.svn.wordpress.org/trunk/ wordpress-develop
cd wordpress-develop
```3. **Create an empty MySQL database.** The test suite will delete all
data from all tables for whichever MySQL database it is configured.
Use a separate database.4. **Set up a config file.** Copy wp-tests-config-sample.php
to wp-tests-config.php, and enter your database credentials.
Use a separate database.5. **Change the path of Wordpress project** in the bootstrap.php file of the plugin
```php
/**
* The path to the WordPress tests checkout.
*/
define( 'WP_TESTS_DIR', '/home/berredo/Documents/repository/wordpress/wordpress-develop/tests/phpunit/' );
```6. **Go to plugin's folder**
```bash
cd vendor/wberredo/nonce
```
7. **Run phpunit** to test
```bash
phpunit
```## Thanks to
* [Wordpress Nonces Documentation](https://codex.wordpress.org/WordPress_Nonces)
* [Wordpress Automated Testing Documentation](https://make.wordpress.org/core/handbook/testing/automated-testing/)## License
[MIT](http://opensource.org/licenses/MIT)