广告
返回顶部
首页 > 资讯 > 后端开发 > Python >PythonFlask前端自动登录功能实现详解
  • 865
分享到

PythonFlask前端自动登录功能实现详解

2024-04-02 19:04:59 865人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录引言1. 登录时2. 定义全局拦截器引言 在已有的网站中,几乎所有的网站都已经实现了 自动登录 所谓自动登录,其实就是在你登录后,然后关闭浏览器,接着再启动浏览器重新进入刚刚的网

引言

在已有的网站中,几乎所有的网站都已经实现了 自动登录

所谓自动登录,其实就是在你登录后,然后关闭浏览器,接着再启动浏览器重新进入刚刚的网站时,无需自己再次登录。更准确的说,在一段时间内,无需自己再次登录

思路:其实所谓的自动登录,到最后的后端逻辑,和你正常的登录逻辑是一样的,也是判断用户名和密码是否正确。只是我们要省略让用户再次输入用户名和密码的步骤,那么肯定就要将用户名和密码存储在一个地方。当检测到用户再次进入时,看看是否满足可以自动登录的条件,满足的话,将保存的用户名和密码取出来,帮用户自动登录。那我们就要去想,将用户名和密码存储到什么地方

在本篇文章中,本人会在 flask 项目中使用 ** session + cookie** 的方式,实现上述的功能

实现的方式有很多种,下面的只是其中一种,大家可以自己的需求进行改造和拓展

1. 登录时

登录,前端传来用户名和密码,然后去后端进行验证。如果用户名和密码都正确,则正常登录

此时,我们需要把用户名、密码存进 cookie 中,然后在 session 存储一个是否已经登录的标识

重要的话说三次:

存储密码时,记得加密!

存储密码时,记得加密!

存储密码时,记得加密!

参考代码如下

from flask import make_response, session, request
@user.route('/login', methods=['POST'])
def login():
	username = request.fORM.get('username').strip()
    passWord = request.form.get('password').strip()
    ......  //  自己的逻辑处理
    if 登录成功:
        session['islogin'] = 'true'  //  是否已经登录的标识
        session['username'] = username  //  根据自己的需求,在session里存储一些值
        # 将Cookie写入浏览器
        response = make_response('login-pass')  //  登录成功,返回给前端的值
        response.set_cookie('username', username, max_age=30*24*3600)  //  max_age,cookie的存活时间,这里表示一个月
        response.set_cookie('password', password, max_age=30*24*3600)
        return response
    else:
        return 'login-fail'  //  登录失败,返回给前端的值

2. 定义全局拦截器

这个时候,可能会有人有疑问,为什么要使用拦截器?

试想:进入一个网站有多个入口,你知道用户会以哪个入口来访问你的网站吗?那我们总不能每一个进入网站的接口都去写一份自动登录的逻辑代码吧。所以我们可以直接使用拦截器,将所有的请求都拦截起来,进行统一的处理。然后将静态的资源和不用进行自动登录逻辑处理的请求过滤掉即可

在程序的主入口 main.py 定义一个拦截器

# 定义全局拦截器,实现自动登录
@app.before_request
def before():
    url = request.path
    pass_list = ['/user', '/login', 'loGout']  //  不用进行自动登录逻辑判断的请求
    if url in pass_list or url.endswith('.js') or url.endswith('.jpg'):
        pass  //  过滤不用进行自动登录逻辑处理的请求和静态的资源
    else:
        if session.get('islogin') is None:
            username = request.cookies.get('username')
            password = request.cookies.get('password')
            if username != None and password != None:
                ......  //  自己的逻辑处理
                if 登录成功:
        			session['islogin'] = 'true'  //  是否已经登录的标识
        			session['username'] = username  //  根据自己的需求,在session里存储一些值

3. 退出登录时

退出登录时,清空 session 和 cookie

from flask import make_response, session, request, url_for
@user.route('/logout')
def logout():
    # 清空session和Cookie,页面跳转
    session.clear()
    response = make_response('注销并进行重定向', 302)  # 302状态码表示重定向
    # 两种重定向的方法
    # response.headers['Location'] = '/'
    response.headers['Location'] = url_for('index.home')  # 另一种方式,括号里的值写请求为“/” 的 - Blueprint名.方法名
    # 两种清除cookie的方式
    response.delete_cookie('username')
    response.set_cookie('password', '', max_age=0)
    return response

上面第二种重定向方式中,所对应的值

index = Blueprint("index", __name__)
@index.route('/')
def home():
    ......  //  自己的逻辑处理

到此这篇关于python Flask前端自动登录功能实现详解的文章就介绍到这了,更多相关Python Flask自动登录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PythonFlask前端自动登录功能实现详解

本文链接: https://www.lsjlt.com/news/120829.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PythonFlask前端自动登录功能实现详解
    目录引言1. 登录时2. 定义全局拦截器引言 在已有的网站中,几乎所有的网站都已经实现了 自动登录 所谓自动登录,其实就是在你登录后,然后关闭浏览器,接着再启动浏览器重新进入刚刚的网...
    99+
    2022-11-11
  • Vue PC前端扫码登录功能实现
    目录需求描述思路解析PC 扫码原理?前端功能实现如何生成二维码图片?如何控制二维码的时效性?前端如何获取服务器二维码的状态?参考资料:总结需求描述 目前大多数PC端应用都有配套的移动...
    99+
    2022-12-29
    vue扫码登录功能 vue登录功能 vue 扫码登录
  • JavaWeb实现自动登录功能
    本文实例为大家分享了JavaWeb实现自动登录功能的具体代码,供大家参考,具体内容如下 自动登录是通过存储cookie值来实现的。 工程目录如下: login.jsp: <...
    99+
    2022-11-12
  • js前端实现登录拼图验证功能
    目录前言核心功能实现原理实现前端登录拼图验证搭建框架添加被校验区域及校验区域添加滑块、滑块背景、拖动条、提示文字添加交互联动被校验区域随机生成校验位置完整代码总结前言 不知各位朋友现...
    99+
    2023-02-17
    js登录验证 拼图验证 完成拼图通过验证
  • Vue前端登录token信息验证功能实现
    用户在首次访问网站时,应在登录页面填写账号密码,前端携带用户信息向服务器请求。 1、服务器验证用户信息 验证失败:给前端响应数据 验证通过:对该用户创建token,并以响应数据返回给...
    99+
    2022-12-27
    Vue token验证 Vue前端token验证
  • 详解Vue PC端如何实现扫码登录功能
    本篇文章给大家带来了关于Vue的相关知识,其中主要介绍了在PC端实现扫码的原理是什么?怎么生成二维码图片?怎么用Vue实现前端扫码登录?感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。.markdown-body{word-break:...
    99+
    2023-05-14
    前端 Vue.js
  • JavaWeb实现简单的自动登录功能
    本文实例为大家分享了JavaWeb实现简单的自动登录功能的具体代码,供大家参考,具体内容如下 用最近所学的知识点实现自动登录,主要有: 1、Filter过滤器 2、session &...
    99+
    2022-11-12
  • java web如何实现自动登录功能
    这篇文章主要介绍java web如何实现自动登录功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下主要思路就是:当用户访问网站的首页时,浏览器端会先检擦浏览器中存在的cookie中是否又登录的用户的用户名...
    99+
    2023-05-31
    java web
  • SpringSecurity实现前后端分离登录token认证详解
    目录 1. SpringSecurity概述 1.1 权限框架 1.1.1 Apache Shiro 1.1.2 SpringSecurity 1.1.3 权限框架的选择 1.2 授权和认证 1.3 SpringSecurity的功能 ...
    99+
    2023-08-31
    spring java spring boot
  • Vue登录功能的实现流程详解
    目录Vue项目中实现登录大致思路安装插件创建store封装axiosqs vue 插件api.js的作用路由拦截登录页面实际使用Vue项目中实现登录大致思路 1、第一次登录的时候,前...
    99+
    2022-11-13
  • android 仿微信demo——登录功能实现(移动端)
    目录移动端登录功能实现测试移动端登录功能实现 登录功能基本和注册一样,唯一不同的是登录可以实现两种登录方式(微信号和手机号),也就是布局不一样。所以需要两个布局,两个activity...
    99+
    2022-11-12
  • shell脚本实现ssh自动登录功能分享
    文件名:ssh_auto_login #!/usr/bin/expect### ssh模拟登陆器## @author zhiyuan <hzyhouzhiyuan艾特gmail.com>##i...
    99+
    2022-06-04
    脚本 自动登录 功能
  • Android实现登录邮箱的自动补全功能
    本文实例为大家分享了Android登录邮箱自动补全功能的实现方法,供大家参考,具体内容如下 效果: 实现原理: 1、继承重写简单控件AutoCompleteTextView ...
    99+
    2022-06-06
    自动 Android
  • JS如何实现两周内自动登录功能
    这篇文章将为大家详细讲解有关JS如何实现两周内自动登录功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下<!DOCTYPE html> ...
    99+
    2022-10-19
  • shell脚本怎么实现ssh自动登录功能
    本篇内容介绍了“shell脚本怎么实现ssh自动登录功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!文件名:ssh_auto_login代...
    99+
    2023-06-09
  • Java后端登录功能怎么实现
    本篇内容介绍了“Java后端登录功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 登录需求分析页面原型 登录页面展示:项目路径...
    99+
    2023-06-30
  • 前端实现打印功能的两种方法详解
    目录前言方法一:window.print()   方法二:利用iframe,iframe.contentWindow.print()补充:导出步骤总结:前言 前端...
    99+
    2023-01-06
    前端实现打印功能 前端打印语句 前端打印功能实现
  • python+selenium实现京东自动登录及秒杀功能
    本文实例为大家分享了selenium+python京东自动登录及秒杀的代码,供大家参考,具体内容如下 运行环境: python 2.7 python安装selenium 安装webdriver(这里是fi...
    99+
    2022-06-04
    自动登录 京东 功能
  • Django + Taro 前后端分离项目实现企业微信登录功能
    目录前言两种方式思路后端代码企业微信应用配置前端代码参考资料前言 还是最近在做的一个小项目,后端用的是Django搭配RestFramework做接口,前端第一次尝试用京东开源的Ta...
    99+
    2022-11-10
  • Java Web实现自动登陆功能
    Java对自动登陆功能的简单实现,仅用到了servlet和一个filter。第一次写博文,如有不足的地方,敬请指正,谢谢。 登陆界面 <%@ page language="...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作