-
Notifications
You must be signed in to change notification settings - Fork 1
/
custom_authentication.php
68 lines (44 loc) · 1.47 KB
/
custom_authentication.php
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
namespace modules;
use \lib\core\Module;
class custom_authentication extends Module
{
public function gen_key($options, $name) {
// https://github.com/RobThree/TwoFactorAuth
// get dynamic values
$appName = $this->app->parseObject($options->applicationName);
// setup the response object
$response = new \StdClass;
// Create a TwoFactorAuth instance
require '../../vendor/autoload.php';
$tfa = new \RobThree\Auth\TwoFactorAuth($appName);
// gen secret
$secret = $tfa->createSecret();
// gen qr url
$dataURL = $tfa->getQRCodeImageAsDataUri('', $secret);
// set the response values
$response->secret = $secret;
$response->dataURL = $dataURL;
// return respons
return $response;
}
public function verify_token($options, $name) {
//https://github.com/RobThree/TwoFactorAuth
// get dynamic values
$user_token = $this->app->parseObject($options->user_token);
$secret = $this->app->parseObject($options->secret);
// setup the response object
$response = new \StdClass;
// Create a TwoFactorAuth instance
require '../../vendor/autoload.php';
$tfa = new \RobThree\Auth\TwoFactorAuth();
// Verify code
$result = $tfa->verifyCode($secret, $user_token);
// set the response values
$response->valid_token = $result;
//return $this->app->parseObject($options->value);
// return respons
return $response;
}
}
?>