AMH 社区首页
AMH社区 - 开放自由有价值的社区
[求助帖] AMH登陆界面添加二次验证——让AMH更安全 |
|
---|---|
jump |
jump 发表于 2014-04-03 22:44:11
效果如图:
修改AMH面板目录下: View/login.php--line28后添加: <dl><dt id="PassDom">动态密码</dt><dd><input type="password" name="password2" class="input_text" value="<?php echo isset($_POST['password2']) ? $_POST['password2'] : '';?>"/ ></dd></dl> Controller/下添加文件ga.php : [attach]1205[/attach] (作者Phil)Controller/index.php 修改function login为: function login() 把Google2FA::verify_key('Input your key', $password2)中的Input your key替换为你的密钥{ $this -> title = '登录 - AMH'; $this -> AmysqlModelBase(); $amh_config = $this -> configs -> get_amh_config(); if (isset($_POST['login'])) { $login_allow = $this -> indexs -> login_allow($amh_config); // 允许登录 if($login_allow['status']) { $user = $_POST['user']; $password = $_POST['password']; $password2 = $_POST['password2']; $VerifyCode = $_POST['VerifyCode']; if ($amh_config['VerifyCode']['config_value'] == 'on' && strtolower($VerifyCode) != $_SESSION['VerifyCode']) { $this -> LoginError = '验证码错误,请重新输入。'; } else { if(empty($user) || empty($password)|| empty($password2)) $this -> LoginError = '请输入用户名与密码。'; else { require_once("ga.php"); if(!Google2FA::verify_key('Input your key', $password2)) //Input your key here { $_POST['password2'] = ''; $this -> LoginError = '账号或动态密码错误。'; } else { $user_id = $this -> indexs -> logins($user, $password); if($user_id) { $this -> indexs -> login_insert(1, $user); $_SESSION['amh_user_name'] = $user; $_SESSION['amh_user_id'] = $user_id; $_SESSION['amh_config'] = $amh_config; $_SESSION['amh_token'] = substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), 0,8); $token = ($amh_config['OpenCSRF']['config_value'] == 'on') ? '?amh_token=' . $_SESSION['amh_token'] : ''; header('location:./index.php' . $token); exit(); } $_POST['password'] = ''; $this -> LoginError = '账号或密码错误,登录失败。(' . ($login_allow['login_error_sum']+1) . '次)'; $this -> login_error_sum = $login_allow['login_error_sum']; $this -> indexs -> login_insert(0, $user); } } } } else { $this -> LoginError = '登录出错已有' . $login_allow['login_error_sum'] . '次。当前禁止登录,下次允许登录时间:' . date('Y-m-d H:i:s', $login_allow['allow_time']); } } $this -> amh_config = $amh_config; $this -> _view('login'); exit(); } 密钥要求: 可用字符:234567QWERTYUIOPASDFGHJKLZXCVBNM 至少位数:16位 二维码生成:https://chart.googleapis.com/chart?cht=qr&chs=200x200&choe=UTF-8&chld=L|4&chl=otpauth://totp/idontplaydarts?secret=SECRETVALUEHERE 把SECRETVALUEHERE替换为你的密钥 需要手机安装Google身份验证题或其他支持Google二次验证的软件 欢迎DIY为AMH插件,利用二维码方便添加和管理密钥 附件 ga.zip
点赞,加油! (0分)
2014-04-03 22:44:11 1
|
ali |
看上去很厉害啊,有没一键安装
回复
2014-04-03 22:50:24 2
|
Captain |
楼主牛X
回复
2014-04-03 22:57:45 3
|
kkynietg |
手机认证都搞出来了 楼主牛叉呀
这么多修改的地方,菜鸟不敢整,怕给整垮了
回复
2014-04-04 00:31:38 4
|
Yusky |
回复
2014-04-04 09:53:42 5
|
Yusky |
楼主。我还是木看明白咋用
回复
2014-04-04 09:57:48 6
|
amysql |
很不错的想法,楼主做成插件安装吧。
估计没多久开发者平台也上线了
回复
2014-04-04 12:12:14 7
AMH面板 - 好用高效低占用、安全可靠极稳定 |
jump |
回复
2014-04-05 11:59:31 8
|
jump |
模块地址:http://amysql.com/bbs/post-2746-1-1.htm 欢迎测试
回复
2014-04-05 12:00:55 9
|
jump |
其实主要就是改了登陆的验证逻辑,模块地址:http://amysql.com/bbs/post-2746-1-1.htm
回复
2014-04-05 12:02:05 10
|