不忘初心,方得始终.

为Typecho启用Google Authenticator两步验证

看到好多网站都支持Google Authenticator的两步验证,所以写了这个小插件,参考了很多前辈写的插件。

Google Authenticator的PHP实现来自:http://www.phpgangsta.de

实现接口

Widget_Login->loginFail
Widget_Login->loginSucceed
并没有用更高级的
Widget_User->login
其实按道理来说后者使用更好,但是函数内判断了如果被插件(注册)了,就直接返回插件返回的结果……

插件原理说明

插入了('admin/header.php')->header来重新处理整个后台页面,实现自定义登录页面,隐藏了用户名输入,固定为_Authenticator,修改密码输入为两步验证的代码输入。

用cookies来判断验证是否成功,显示系统的登录页面,因为未登录状态typecho并没有开启PHP SESSION支持,(为了系统性能)

调用loginFail接口,也就是登录失败的接口,实现了用系统登录接口验证两步验证的代码。

调用loginSucceed来清理保存验证的cookies

已知问题

后台没法显示图片,或者是我不知道如何显示,反正就是没显示二维码,只给了一个二维码的网址,自己打开吧

如果手机丢了,没法找回的哟,但是SecretKey保存在数据库typecho_options/plugin:GAuthenticator里,可以手动查询再次绑定

插件发布

GitHub

使用说明

下载插件,修改文件名为GAuthenticator放到/usr/plugins目录,然后到后台启用

插件默认关闭,首次开启需要扫描二维码绑定之后填写手机上显示的代码,验证成功之后才可以启用

有什么问题可以在本页面回复

已有 15 条评论
  1. mikusa

    Mark,有空试下这个插件

    mikusa [Android 8.0.0 Chrome 69.0.3455.0] 回复
  2. MakGP

    你好,Typecho1.0版本点击启用提示Server Error

    MakGP [Win10 x64 Chrome 53.0.2785.104] 回复
    1. WeiCN

      用最新的开发板试试,在开发版测试的

      WeiCN 博主 [Win10 x64 Chrome 57.0.2987.133] 回复
  3. GAuthenticat

    你好请问为什么安装配置成功开启以后,验证码登录还是密码错误,用原来的密码登录还能登录......

    GAuthenticat [Win7 Chrome 57.0.2987.98] 回复
    1. WeiCN

      你在说什么,我完全没明白……

      WeiCN 博主 [Win10 x64 Chrome 56.0.2924.87] 回复
      1. GAuthenticat

        就是安装好以后,登陆的时候用谷歌APP的验证码登录失败,用账号原来的密码才能登录,

        GAuthenticat [Win7 Chrome 57.0.2987.98] 回复
        1. WeiCN

          后台需要正确开启,开启后后台右上角会显示绿色的“已启用 Authenticator 验证”,然后在登录后台的时候,会首先显示验证码页面,验证通过后才会显示正常的用户名密码界面

          WeiCN 博主 [Win10 x64 Chrome 56.0.2924.87] 回复
  4. holmesian

    建议用Authy代替Google Authenticator来储存二次验证

    holmesian [WinVista x64 Firefox 48.0] 回复
  5. LT21

    好像不错,下来试试~ icon_smile.gif

    LT21 [Mac OSX 10_11_4 Chrome 50.0.2661.102] 回复
  6. Ryan

    怕丢了手机就不会往云盘保存个二维码截图么?或者在虚拟机运行二次验证app。

    Ryan [Win10 x64 Firefox 43.0] 回复
    1. WeiCN

      这个可以有 icon_lol.gif

      WeiCN 博主 [Win10 x64 Chrome 50.0.2661.87] 回复
  7. 熠熠

    icon_confused.gif 怎样使用啊

    熠熠 [Win7 Chrome 45.0.2454.101] 回复
    1. WeiCN

      先下载一个APP,然后绑定就可以啦

      WeiCN 博主 [Win10 x64 Chrome 50.0.2661.87] 回复
      1. 熠熠

        icon_surprised.gif 是不是需要手机有谷歌的账户?

        熠熠 [Win7 Chrome 45.0.2454.101] 回复
        1. WeiCN

          不需要.APP是谷歌做的.离线验证的.

          WeiCN 博主 [iPhone OS 9_0_2 Chrome for iOS 50.0.2661.77] 回复
发表新评论 选择表情