aboutsummaryrefslogtreecommitdiffstats
path: root/apps/federatedfilesharing/lib/TokenHandler.php
blob: e0a6d2cbe8ca93f281947f0013c856a185ffeebd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php

/**
 * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
 * SPDX-License-Identifier: AGPL-3.0-only
 */
namespace OCA\FederatedFileSharing;

use OCP\Security\ISecureRandom;

/**
 * Class TokenHandler
 *
 * @package OCA\FederatedFileSharing
 */
class TokenHandler {
	public const TOKEN_LENGTH = 15;

	/** @var ISecureRandom */
	private $secureRandom;

	/**
	 * TokenHandler constructor.
	 *
	 * @param ISecureRandom $secureRandom
	 */
	public function __construct(ISecureRandom $secureRandom) {
		$this->secureRandom = $secureRandom;
	}

	/**
	 * generate to token used to authenticate federated shares
	 *
	 * @return string
	 */
	public function generateToken() {
		$token = $this->secureRandom->generate(
			self::TOKEN_LENGTH,
			ISecureRandom::CHAR_ALPHANUMERIC);
		return $token;
	}
}