PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Services / OAuth / Helpers / Tokens.php
presto-player / inc / Services / OAuth / Helpers Last commit date
Tokens.php 1 week ago
Tokens.php
44 lines
1 <?php
2 /**
3 * Token generation + hashing helpers.
4 *
5 * @package PrestoPlayer
6 * @subpackage Services\OAuth\Helpers
7 */
8
9 namespace PrestoPlayer\Services\OAuth\Helpers;
10
11 /**
12 * Small static helpers for opaque token strings.
13 */
14 class Tokens {
15
16 /**
17 * Generate a cryptographically random base64url-safe opaque token.
18 *
19 * @param int $bytes Number of random bytes to draw (default 32 → ~43 char token).
20 * @return string Base64url-encoded random string with no padding.
21 */
22 public static function generateOpaqueToken( $bytes = 32 ) {
23 $bytes = (int) $bytes;
24 if ( $bytes < 16 ) {
25 $bytes = 16;
26 }
27 $raw = random_bytes( $bytes );
28 $base64 = base64_encode( $raw ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
29 return rtrim( strtr( $base64, '+/', '-_' ), '=' );
30 }
31
32 /**
33 * Hash an opaque token for storage / lookup.
34 *
35 * Sha256 hex — fast, deterministic, suitable for indexed primary key lookups.
36 *
37 * @param string $token Plaintext token.
38 * @return string Hex-encoded sha256 digest (64 chars).
39 */
40 public static function hash( $token ) {
41 return hash( 'sha256', (string) $token );
42 }
43 }
44