What you are doing wrong is using nonce in a context it was not intended to be used in. nonces should be used on web pages for logged in users, not just a random “it has something to do with security so it has to be right” kind of measure ;).
If you need to validated the authenticity of the link you have sent, just use an md5 hash (or any other hash generator) based on whatever long term “secret” information you have on the user. At the best case, nonces “live” for 48 hours, while emails might be opened later then that.
Related Posts:
- How does nonce verification work?
- How to expire a nonce?
- Fatal error: Call to undefined function wp_create_nonce()
- How to add/retrieve the post trash link?
- Using nonce external of WP Admin
- Nonce best practices: hidden input vs. wp_localize_script?
- “The link you followed has expired” when previewing a post
- wp_verify_nonce keeps failing
- Handling nonce generation in AJAX registration process
- increase nonce lifespan
- wp_verify_nonce() via REST always returns false
- Nonce failing in IE
- my theme breaks WP export
- Why am I getting a 403 from check_admin_referer()?
- x-wp-nonce across domains
- wp_create_nonce doesn’t verify when using WP_List_Table
- Handling expired nonces
- What is really “wp_nonce_field” and how does it work? [duplicate]
- wp_verify_nonce return false despite correct parameter passed
- WordPress JSON API nonces and Vue development server
- Verify a nonce in Form submission
- phpcs error in WordPress
- Stop WordPress nonces expiring
- Several nonces?
- Nonce for Trashing Item
- Nonce keeps failing
- Public posts – preventing duplicate form submissions
- How to obtain “wp_rest” nonce for WP Statistics plugin manually?
- WordPress “nonce” message
- CSP nonces with Cloudflare Workers
- Why are nonces working in Firefox but not in Chrome?
- wp_verfy_nonce keeps giving false
- Nonce – reissue with ajax poll
- wp_nonce_url generating invalid links
- How to insert wp_nonce field within echoed string
- Nonce check causing issues when creating new post
- Weird nonce validation problem
- Logout button in menu without “wp” in links
- Check nonce in the new bulk_edit_posts action
- How to get a unique nonce for each Ajax request?
- Nonce retrieved from the REST API is invalid and different from nonce generated in wp_localize_script
- Are Nonces Useless?
- How to use nonce with front end submission form?
- Extend WordPress (4.x) session and nonce
- How do WordPress Nonces Work?
- AJAX nonce with check_ajax_referer()
- Verify nonce in REST API?
- Do I require the use of nonce?
- Getting “The link you followed has expired” when adding custom post [closed]
- Handling nonces for actions from guests to logged-in users
- How to add WordPress nonces to ajax request
- Can I verify nonce which was generated on a different WP site?
- Security – Ajax and Nonce use [closed]
- Undefined index: at_nonce in custom post metabox
- “Notice: Undefined index:” error when adding new content?
- WP REST API: check if user is logged in
- How to save multiple metaboxes?
- Can’t GET draft posts via REST API from headless frontend
- Rest API invalid nonce with Backbone Client
- How to get the wpnonce value?
- WordPress REST API, Expired Nonce from Cache results in 403 forbidden
- Nonce generated 0-12 hours ago
- Passing a borrowed nonce through Postman fails
- Maximum lifetime for nonce
- Use of check_admin_referer with theme options and options.php
- Passing nonce at admin menu link
- Encountering “Wrong nonce. Action prohibitied.” when trying to alter User Role and unable to Post via WP Admin
- Bypass nonce value while trashing a post
- wp_nonce_field displaying twice
- Is it safe to use a global wp nonce per user instead of a nonce per action?
- Rest API: wp_verify_nonce() fails despite receiving correct nonce value
- How to verify nonces in bulk?
- Backbone with custom rest endpoints
- Restrict Access without Creating Users
- How to use nonce
- Re-use Nonce in Repeating Event Signup Buttons
- How to add a WordPress Nonce for this form to avoid CSRF
- Using nonce when loading posts with AJAX
- Saving custom data via ajax with nonces
- Log in user using WordPress REST API
- WP_List_Table Inside Metabox With Bulk Actions Not Working on Submit
- wp_verify_nonce not working on the mobile device
- How to not cache nonces with WP Rocket?
- How do I mitigate replay attacks when talking about actions that shouldn’t happen twice?
- whether a nonce is required for get type and get_query_var?
- Unable to update plugins or log out
- Does it make sense to check a nonce on user log in?
- How can I verify WordPress nonce from the following code?
- AJAX form not working, still reloads on submit
- CSRF attack to create USER
- Register rest field authentication with REST API
- Create nonce in frontend page to edit profile
- when saveing $meta_box i get Undefined index error
- WordPress wp_localize_script nonce and ajax URL
- Rest API nonce is being cached
- How to add a nonce check correctly to this specific code?
- Is Nonce Verification (CSRF) required for WordPress Custom Bulk User Actions?
- Nonce validation in REST API
- How to stop a nonce from being cached in an inline script, or alternatives to regenerate it if expired?
- $_GET[”] variable with nonce verification