分享好友 最新动态首页 最新动态分类 切换频道
google authenticator python_python 实现google authenticator 认证
2024-12-26 23:30

1.背景

google authenticator python_python 实现google authenticator 认证

google auth 作为二次认证,大多场景下都使用在ssh 登录下,而且在ssh 的场景下使用

搭建相对比较简单,本文将介绍google auth 使用在应用平台的二次认证,如:单点登录

网站登录等平台,增加平台的安全性认证。

#ssh 的搭建可以参考另外一篇博客 https://blog.51cto.com/12113362/2050514

2.实现原理

1.使用pyotp 的python模块生成google auth 需要的密钥

2.根据密钥生成条形码图片

3.使用google authenticator 客户端扫描条形码,客户端根据时间及密钥经过算法

生成6位数的验证码

4.平台二次认证通过对输入的验证码进行校验,校验也是基于时间和密钥

3.代码实现

a.密钥生成

import pyotp

gtoken = pyotp.random_base32() #获取随机密钥,存于用户表中

b.生成条形码图片,根据用户名及密钥生成条形码图片

from qrcode import QRCode,constants

def get_qrcode(secret_key,username):

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

filepath = BASE_DIR + '/app/static/img/qrcode/'

data = pyotp.totp.TOTP(secret_key).provisioning_uri(username, issuer_name="Verfiy Code")

qr = QRCode(

version=1,

error_correction=constants.ERROR_CORRECT_L,

box_size=6,

border=4,)

try:

qr.add_data(data)

qr.make(fit=True)

img = qr.make_image()

img.save(filepath+secret_key+'.png') #保存条形码图片

return True

except Exception,e:

return False

c.客户扫描图片,前端页面验证用户名和密码后,显示对应的条形码图片

参考另外一篇博客:https://blog.51cto.com/12113362/2050335

d.校验验证码的正确性

import pyotp

def Google_Verify_Result(secret_key,verifycode):

t = pyotp.TOTP(secret_key)

result = t.verify(verifycode) #对输入验证码进行校验,正确返回True

msg = result if result is True else False

最新文章
如何搭建小程序?
随着移动互联网的普及,小程序已经成为了一种非常流行的应用方式,因为它可以在不需要下载安装的情况下提供完整的应用体验。因此,越来越多的人开始关注如何搭建小程序。下面,我们来简单介绍一下如何搭建小程序。现在,无需找app开发公司
附件上传的大小限制
IIS6 默认允许的附件最大上传大小为4M,在IIS7之前,当我们需要扩大这个上传限制时,比如需要将允许上传的附件上限设置为50M,则可以在web.config中做如下配置:system.webhttpRuntime maxRequestLength="51200" //system.web2. maxAllowed
百度怎么开户投放广告
百度怎么开户投放广告?作为中国最大的搜索引擎,百度每天都要处理数以亿计的搜索请求,这也为广告主们提供了一个广阔的广告投放平台。如何在百度上开户并投放广告,让自己的品牌和产品得到更好的曝光和推广,是许多广告主关注的问题。本文
高清美女写真生成:超简单的AI绘图工具推荐与使用指南
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 宝子们,想象一下,你在家里随便拍拍,竟能产生出超逼真的美女写真,这不是电影里的情节,而
sem竞价代运营公司主要负责哪些工作?揭秘sem代运营的核心职责!
在数字营销这片浩瀚的海洋中,SEM竞价代运营公司就像那艘稳健的航船,载着企业在波涛汹涌的市场中破浪前行。那么,这些代运营公司究竟负责哪些工作?他们又是如何助力企业实现营销目标的呢?今天,咱们就来揭秘SEM代运营的核心职责,让您对
以图搜图
点击详情进入查看更多搜图工具网站服务:常用搜索,以图搜图,识图,以图搜图,图像检索,图像识别,图片识别,图片搜索,图像搜索,识图,搜图,找图,拍图,拍照,常用推荐,常用搜索,以图搜图。百度图像搜索-领先的图像识别技术连接人
长沙NOIP信息学奥赛集训营咨询热线:   在线咨询: 点击交谈
长沙NOIP信息学奥赛信息 长沙NOIP信息学奥赛集训营是长沙青少儿教育品牌,形成了以乐高创意启蒙课程、人工智能编程、智能机器人编程、信息学奥赛编程等课程体系为核心,集国内外大型权威科技赛事、少儿资格认证考试、科技主题的国内外游学
微信小程序如何获取链接
微信小程序的链接获取是开发者在开发过程中需要注意的一个重要问题。链接是小程序中不可或缺的元素,它可以在不同页面之间进行导航和跳转,为用户提供丰富的交互体验。这篇文章将介绍如何在微信小程序中获取链接,并提供一些实用的技巧和注
阅读与写作兴趣班教学计划
阅读与写作兴趣班教学计划(通用12篇)  时间就如同白驹过隙般的流逝,前方等待着我们的是新的机遇和挑战,现在就让我们好好地规划一下吧。计划到底怎么拟定才合适呢?以下是小编为大家收集的阅读与写作兴趣班教学计划,希望对大家有所帮
【C8600360清理大师下载】华为C8600360清理大师8.4.2免费下载
清理大师:更简单,更畅快!6亿用户信赖的手机清理!清理大师是一款完全免费的手机加速与空间清理软件,强力加速使手机运行更流畅,一键清理快速解决空间不足问题。【一键清理】一键搞定无用垃圾,手机清理更省心【手机加速】瞬间释放手机
相关文章
推荐文章
发表评论
0评