用户登录

用户登录的功能我们使用 Json Web Token(JWT) 来为登录用户生成token令牌,并返回给客户端,客户端有了令牌之后,每次访问服务器,都携带Token,后台经过验证就能知道当前登录的用户是谁,以实现鉴权,权限控制。

comment——utils——token_pyjwt.py
生成token和验证token

import jwt
from comment.utils import const
from datetime import datetime,timedelta
from jwt import PyJWTError
from flask import current_app
from comment.models.user import Userdef generate_tokens(uid):'''一个用户在一次会话生成一个token:param uid: 用户id:return:'''#params:是生成token的参数params={'id':uid,#exp:代表token的有效时间,datetime.utcnow():代表当前时间#timedelta:表示转化为毫秒'exp':datetime.utcnow()+timedelta(seconds=const.JWT_EXPIRY_SECOND)}#key:密钥,#algorithm:算法,算法是SHA-256#SHA-256:密码散列函数算法.256字节长的哈希值(32个长度的数组)---》16进制字符串表示,长度为64。信息摘要,不可以逆return jwt.encode(payload=params,key=const.SECRET_KEY,algorithm='HS256')def verify_tokens(token_str):'''验证token:param token_str:如果验证成功返回用户id:return:'''try:#返回之前生成token的时候的字典,字典种包含id和expdata=jwt.decode(token_str,key=const.SECRET_KEY,algorithms='HS256')current_app.logger.info(data)user=User.query.filter(User.id==data['id']).first()if user and user.onlock==0:       #如果用户存在,并且没有锁定return {'id':user.id}else:return {"message":"数据库中不存在当前用户,或者用户已经过期"}except PyJWTError as e:current_app.logger.error(e)return {"message":"token验证失败"}

comment——utils——const.py
定义常量

SECRET_KEY=os.urandom(16)   #生成一个随机数作为密钥
JWT_EXPIRY_SECOND=60*60 #TOKENDE 有效时间,一个小时

【Flask项目2】生成token和验证token(11)相关推荐

  1. jwt生成token和验证token以及获取playload的数据,实现token拦截

    jwt实现流程: 1.添加依赖: <dependency><groupId>com.auth0</groupId><artifactId>java-jw ...

  2. 利用GUID/UUID生成token及验证token的正确性

    本来有JWT这种生成token验证的强大工具,但有时考虑到项目的实际需求,会利用GUID/UUID来生成token,当然GUID/UUID能生成很多具有唯一性的验证结果,所以这里主要记录下GUID/U ...

  3. 生成token和验证token机制

    1.生成token是一个spring控制器  基于项目和项目之间的调用秘钥生成之后放redis,两小时后失效 package com.csair.openapi.controller.basic;im ...

  4. FLASK RESTFUL TOKEN用户验证笔记

    笔记1 REST要求无状态,可以理解为没有session,而且session的存储遇到分布式集群的情况就比较难搞,所以对于用户验证目前网上大多数做法是token方式,第一次登录的时候,先提交用户名密码 ...

  5. Vue项目中实现用户登录及token验证

    一.什么是token token的意思是"令牌",是服务端生成的一串字符串,作为客户端进行请求的一个标识.当用户第一次登录后,服务器生成一个token并将此token返回给客户端, ...

  6. vue 用户名重复验证_Vue项目中实现用户登录及token验证

    在前后端完全分离的情况下,Vue项目中实现token验证大致思路如下: 1.第一次登录的时候,前端调后端的登陆接口,发送用户名和密码 2.后端收到请求,验证用户名和密码,验证成功,就给前端返回一个to ...

  7. wegame每次登陆都要滑动验证_Vue项目中实现用户登录及token验证

    在前后端完全分离的情况下,Vue项目中实现token验证大致思路如下: 1.第一次登录的时候,前端调后端的登陆接口,发送用户名和密码 2.后端收到请求,验证用户名和密码,验证成功,就给前端返回一个to ...

  8. springboot+vue3.0+token 安全验证

    springboot+vue+token安全验证 目录 一.说明 二.后台(springboot) 1.添加依赖包 2.添加token工具类 3.创建拦截器 4.入口拦截 5.配置跨域 6.登录接口 ...

  9. token登录验证机制

    jwt: json web token 数据 前端 秘钥 前端 请求数据的时候. 需要通过秘钥生成命令令牌. Token token是oAuth Token,提供的是认证和授权,认证针对用户,授权是针 ...

最新文章

  1. Windows10 中使用 virtualbox 安装ubuntu 虚拟机
  2. python【蓝桥杯vip练习题库】ALGO-141 P1102(学生信息)
  3. 登陆SharePoint站点出现service unavailable----Http错误503
  4. 非maven配置SpringBoot框架
  5. 算法(28)--矩阵搜索系列
  6. C# 通过接口IEnumerator让自己编写的对象/类,实现foreach遍历方法
  7. 转眼人到中年:前端老程序员无法忘怀的一次百度电话面试(二)
  8. [面试] C++ 语法(一) —— 初始化列表的初始化顺序
  9. 从零开始学习python编程-新书推荐《Python3.7从零开始学》来了
  10. 二叉链表存储的二叉C语言,C语言实现二叉链表存储
  11. java计算机毕业设计小区宠物管理系统源码+系统+数据库+lw文档
  12. 华为安装gsm框架_华为mate30怎么安装谷歌服务?华为mate30系列安装GMS框架图文教程...
  13. Socket+华为云 实现广域网五子棋在线对战
  14. 互联网时代下的市场营销
  15. 关于英语的大小写规则
  16. 多普勒效应多径效应慢衰落、快衰落
  17. 如何给网站添加 OG 协议
  18. 中关村2019逆向 Reverse lebel:控制流平坦化 / python字节码分析
  19. 点击地图新增点位多个
  20. web 端 打开qq对话框

热门文章

  1. 如何防范计算机安全隐患,浏览器常见安全问题解析及如何加强防范与应对 -电脑资料...
  2. 高低压配电系统基础知识,都是非常全面的分享!
  3. UPS远程监控系统的设计与实现
  4. php 下载的文件损坏,PHP下载文件损坏与打开乱码问题解决办法
  5. Tool之curl:curl的简介、安装、使用方法之详细攻略
  6. CV之FD:基于dlib、cv2库利用warpPerspective函数和_68_face_landmarks文件实现AI换脸渐变融合视频效果
  7. AI之FL:联邦学习(Federated Learning)的简介、入门、应用之详细攻略
  8. Crawler/ML:爬虫技术(基于urllib.request库从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类
  9. 第8.23节 Python中使用sort/sorted排序与“富比较”方法的关系分析
  10. 素数计算之埃氏筛法、欧拉筛法