不用密码的用户系统实现

已发在github

[https://github.com/raptorz/userga]

以下直接取自README.md

一个可以不用密码的用户系统。默认只需要输入email即可注册或登录,如果需要密码,可以使用Google Authenticator扫描邮件中的二维码,使用GA生成的一次性密码登录。

基本功能

  1. 注册:输入email即完成注册或登录。提示:本网站可以不用设置密码,直接使用email登录,如果需要设置密码,请收取邮件,并按邮件中的指示操作。
  2. 登录:未设置密码:输入email直接登录。已设置密码:输入email后弹出密码提示,需要输入GA生成的一次性密码登录。
  3. 设置密码:邮件内容:祝贺您成功注册本网站,您现在可以直接使用email登录网站

安装

cd /usr/ports/databases/py-sqlite3 # for FreeBSD
sudo make PYTHON_VERSION=python3.4 install  # for FreeBSD
pip install -r requirements.txt
python userga.py

配置

配置文件为当前目录下的config.json,内容为:

{
    "db_url": "sqlite:///userga.dat",
    "web_path": "userga",
    "web_addr": "127.0.0.1",
    "web_port": 8001,
    "debug": True,
}

依赖

  • python 3.4+(其它版本未测试)
  • bottle, mako, beaker, sqlalchemy, bottle-sqlalchemy
  • bottle-plugins
  • 可选webserver前端(Apache/Nginx…)

贡献

程序代码中包含以下第三方前端库:

  • jquery
  • bootstrap

安全性

  • 安全性不高:
  • secret目前用的是base64编码随机字符后取10位,密钥空间为64^10
  • OTP code只有6位数字,在30秒内试完其实是可能的
  • 所以必须配合重试限制,目前是简单地限制30秒内只允许尝试一次(重置密码是5分钟)
时间: 2025-01-17 01:54:04

不用密码的用户系统实现的相关文章

一个不用密码的用户系统

很多年前云风设想过这样一个用户系统<为什么一定要有密码?>,我是挺赞同的.对我来说,用户系统是一个责任重大的东西,可惜很多国内厂商都不把这当回事. 之前做过一些小东西,基本上都是采用第三方登录的方式,比如用google账号登录.这样就把用户管理的麻烦事交给第三方去处理了,相信google这样的大厂能做得更好. 然而总会有需要自己管理用户的时候,虽然可以采用各种安全的措施去保护这些用户数据,比如用更安全的密码散列算法什么的,但最好还是不要有密码,没有密码就无从泄露了. 之所以有这种想法,是站在用

Linux基本安全措施、加强系统账号密码安全、系统引导和登录安全、用户切换、su、sudo、grub菜单

1. 基本安全措施 1.1系统账号清理 在Linux系统中,除了用户手动创建的以外,还包括随系统或程序安装过程中生成的其他大量用户,除了超级用户root外,其他大量账号只是用来维护系统运作.启动或保持服务进程,一般是不允许登录的,因此也成为非登录用户. 常见的非登录用户有:bin.adm.lp.mail.nobody.mysql.dbus.ftp.gdm.haldaemon等.为了确保系统安全,这些用户的登录Shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人改动. 各种非

服务器间访问不用密码的设置

经常在服务器程序(脚本)里面,或在命令行中,执行ssh,scp命令,会碰到要求密码的情况,很不方便! 如果在两台相互信任,其实步骤挺简单,假设要从主机1上执行,ssh,scp操作. 主机1:host1    用户1:user1 主机2:host2    用户2:user2 一:在主机1上执行下列操作: 1./home/user1/.ssh/ 目录下,执行:ssh-keygen –t id_rsa $ ssh-keygen -t rsa Generating public/private rsa

如何恢复已删除账号及无账号密码进入win7系统?

电脑几乎成了家庭.公司必备的工具,处处都可见到它的身影.当我们不小心删除win7账户显示没有可用账户可登陆系统时,接下来应该怎么呢? 一,如何解决在系统装有杀毒软件的情况下恢复已删除账号? 由于只是删除原有账号并没有删除账户文件,猜测账户是可以恢复.果然,开始-附件-系统工具-系统还原,发现有一个早上的还原点,这个还原点有我需要的一切数据.于是选择该还原点进行还原. 但是,当系统自动重启之后出现提醒窗口"开启了杀毒软件,系统还原失败".关闭杀毒软件重试,还是同样结果. 检查后发现,杀毒

烂泥:puppet添加带密码的用户

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前一篇文章,我们介绍了有关puppet3.7的安装与配置,这篇文章我们再来介绍下如何利用puppet添加带密码的用户. 要通过puppet添加带密码的用户,我们需要分以下几个步骤: 1.查看user资源帮助 2.user选项说明 3.添加系统用户 4.生成用户密码 5.添加带密码的用户 一.查看user资源帮助 要通过puppet为系统添加用户,我们需要首先查看puppet如何添加用户,这个我们可以查看puppet的user资源帮助信息.如下: p

在不同域中各个系统拥有自已独立的用户系统时的单点登录问题

我们在实现业务中经常会碰到多个系统各自有各自的用户登录系统,而且这些系统是各自运行在各自的域下,所以要实现这些系统用户的单点登录就是个问题了,所以自己想了一个方案希望看看是否可行. 1.sso站点必须是单独一个站点. 我把sso单独设立一下站点,这个站点可以单独一个域名,主要存放各个系统的用户信息及登录的cookie信息. 2.保证各个系统的用户数据一致性和独立性. 各个系统拥有自己的用户数据表相互独立.每一个系统的CUD(创建,更新,删除)时都会触发其它系统的CUD.那么这里有个问题也会出现:

Redis+Django(Session,Cookie、Cache)的用户系统

转自 http://www.cnblogs.com/BeginMan/p/3890761.html 一.Django authentication django authentication 提供了一个便利的user api接口,无论在py中 request.user,参见 Request and response objects .还是模板中的 {{user}} 都能随时随地使用,如果从web开发角度来看,其实无非就是cookie与session的运用. 在项目首页,在登陆和注销状态下分别输出

Ubuntu输入正确的用户名密码不能进入系统的原因和解决方法

    问题描述:在VMWare上装了个Ubuntu,关机后再启动输入正确的用户名和密码,系统一闪又回来登录界面,而且不提示用户名或者密码错误(间接证明用户名密码正确).   问题原因:linux的启动配置文件/etc/profile 出现问题 解决办法:同时按下CTRL+ALT+F1键,从图形界面进入命令行模式,输入用户名密码登陆.登陆成功后,sudo su 切换到root用户.然后vi /ect/profile文件,将该文件中错误的部分去掉.wq退出.按CTRL+ALT+F7返回图形界面,重

忘记root密码---单用户模式进入及操作

修改root密码----------------单用户模式操作 个人原创博客,转载请注明,否则追究法律责任 1,开机后,迅速按下任意键 2,选择第二个:内核,按e 3,在quient后面按空格 1 或者 s 或者S 或者 single ,然后按回车 返回上级菜单 5,按b键重启系统,进入后通过passwd 重新修改root的密码