登录页面实现账号密码正确之后才进行页面的跳转

0 篇文章 0 订阅
订阅专栏

前言

实现登录页面时,大多由这样一个需求:用户输入账号密码后,需要先判断账号密码是否不为空;如果不为空的话,就判断账号密码是否正确;如果都没有问题的话才进行页面的跳转。现在我利用react+react-bootstrap+jquery来实现这一功能

实现

代码展示
客户端代码:

import React from 'react';
import ReactDom from 'react-dom';
import { Form, Row, Col, InputGroup, Button, Modal} from 'react-bootstrap';
import './login.css';
import 'bootstrap/dist/css/bootstrap.min.css';
import '../src/resource/icons/fontawesome-free-5.13.0-web/css/all.css';
import $ from 'jquery';

class Login extends React.Component {
    constructor(props){
        super(props);
        this.handleSubmit = this.handleSubmit.bind(this);
        this.registerUser = this.registerUser.bind(this);
        this.state = {validated: false, show: false};
    }
    componentDidMount(){
    }
    handleSubmit(event){
        const formElement = event.currentTarget;//获得表单元素
        event.preventDefault(); //阻止表单提交的默认行为,因为我想由我控制不想要默认的行为
        event.stopPropagation(); //阻止事件继续传播
        if (formElement.checkValidity() === false) { //如果表单的必要条件不满足:此处指的是账号或密码为空
            this.setState({validated: true}); //显示账号密码处的错误提示
        }
        else{
            let usernameVal = formElement.elements.username.value; //获取输入的账号
            let passwordVal = formElement.elements.password.value; //获得输入的密码
             //如果账号密码都不为空,那就验证账号密码是否为空,post就是跟服务器确认账号密码是否正确
             $.post('/login',{username: usernameVal ,password: passwordVal}, (data)=>{
                    //根据返回值进行判断,如果匹配服务器返回1,否则返回0
                    if(data == "1"){ //如果账号密码正确,服务器发回1
                        document.getElementById("jumpToIndex").submit(); //跳转到应用界面
                        console.log("1");
                    }
                    else{
                        console.log("2");
                        this.setState({show: true}); //显示一个model,提示账号密码错误
                        //2秒后model隐藏
                        window.setTimeout(()=>{
                            this.setState({show: false});
                        }, 2000);
                    }
                })
        }
    }
    registerUser(){
        document.getElementById("jumpToRegister").submit(); //跳转到注册页面
    }
    render() {
        return (
        <div id = "login">
            <div id = "loginTitle">实验室资产管理系统</div>
            <div id = "loginMain">
                <Form id = 'jumpToIndex' method="GET" action="/"></Form>
                <Form id = 'jumpToRegister' method="GET" action="/registerUser"></Form>
                <Form id = "validateForm" noValidate validated={this.state.validated} onSubmit={this.handleSubmit}>
                    <Col id = "loginFormCol">
                        <Form.Label id = "loginFormTitle">登录账号</Form.Label>
                        <InputGroup className = "userName">
                            <InputGroup.Prepend>
                                <InputGroup.Text id="userNameIcon"><i className="fas fa-user"></i></InputGroup.Text>
                            </InputGroup.Prepend>
                            <Form.Control name="username" type="text" placeholder="Username" required />
                            <Form.Control.Feedback type="invalid">
                                Please choose a username.
                            </Form.Control.Feedback>
                        </InputGroup>
                        <InputGroup className = "password">
                            <InputGroup.Prepend>
                                <InputGroup.Text id="passwordIcon"><i className="fas fa-lock"></i></InputGroup.Text>
                            </InputGroup.Prepend>
                            <Form.Control name="password" type="password" placeholder="password" required />
                            <Form.Control.Feedback type="invalid">
                                Please choose a password.
                            </Form.Control.Feedback>
                        </InputGroup>
                        <Row id = "passwordHelp">
                            <Form.Label id = "registerUser" onClick = {this.registerUser}>注册用户</Form.Label>
                            <Form.Label id = "forgetPassword"> forget password</Form.Label>
                        </Row>
                        <Button id = "loginButton" type="submit">登录</Button>
                    </Col>
                </Form>
                  <Modal size="sm" show={this.state.show} onHide={() => this.setState({show:false})} animation={false}>
                    <Modal.Header>
                      <Modal.Title style={{textAlign: "center"}}>登录</Modal.Title>
                    </Modal.Header>
                    <Modal.Body>账号或者密码不正确!</Modal.Body>
                  </Modal>
            </div>
        </div>
        );
    }
}

ReactDom.render(
    <Login />,
    document.getElementById('root')
)

服务器段代码(express实现的)

/* GET users listing. */
    app.get('/login', function(req, res) {
      res.render("login"); //向客户端发回login.html页面
      return res;
    });

    // 用户登录
    app.post('/login', function(req, res, next) {
       //这里没啥好说的,不会的去查express的passport、passport-local中间件
        passport.authenticate('local', function(err, user, info) {
            console.log("err,user,info", err, user, info);
            if (err) {
                console.log("1");
               return next(err);
            }
            if (!user) {
                //return res.send("用户名不对");
                console.log("用户名不对");
                res.set('Content-Type','text/plain'); //express默认发送html类型的数据,所以要修改为文本类型
                res.send("2");
                return res;
            }
            req.logIn(user, function(err) {
                if (err) {
                    console.log("3");
                    return next(err);
                }
                req.session.username = user.username;
                res.set('Content-Type','text/plain');
                res.send("1");
                return res;
            });
        })(req, res, next);
    });

效果图:

  1. 账号密码没输入时由错误提示
    账号密码没输入时由错误提示2. 账号密码都已经输入账号密码都已经输入

说明:
1.

<Form id = 'jumpToIndex' method="GET" action="/"></Form>
<Form id = 'jumpToRegister' method="GET" action="/registerUser"></Form>
<Form id = "validateForm" noValidate validated={this.state.validated} onSubmit={this.handleSubmit}>
...
</Form>

这三行代码很重要,前两个Form元素仅用来进行跳转的,第三个是提供账号密码输入的界面的。

 $.post('/login',{username: usernameVal ,password: passwordVal}, (data)=>{...}

这行代码是将输入的账号密码传到服务器那进行验证的。

3.服务器端

res.set('Content-Type','text/plain');
res.send("1");

这行代码是服务器发回账号密码确认信息

**tips:**推荐一些我用到的网站

  1. react-bootstrap: https://react-bootstrap.github.io/components/alerts/
  2. express进行登录验证的实例(有源代码): https://juejin.im/post/5a5961cc6fb9a01c9c1ef8a2
html密码验证 并跳转页面,vuejs 实现后端分离登录验证和页面自动跳转
weixin_32655655的博客
06-03 1679
使用的技术点:vue-routeraxiosvuexelement-uiqs项目介绍:这个项目是一个类似google相册功能的项目,目前实现的是图片特征提取,可以以图搜图,最终打造成一个智能相册。后台由go语言开发,图片特征提取由c++开发,前端使用vuejs实现完全前后端分离。现在就开始我们的前段代码吧。这里我们都使用vue组件开发实现登录组件代码如下:My-Albums登 录import ax...
js实现登录用户密码正确错误跳转
weixin_43424506的博客
10-24 7724
使用myeclipse工具实现js输入框表达式账户正确跳转页面代码 准备好 index.jsp show.jsp 还有java代码 以下代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); Str...
php登陆框_PHP 登录完成跳转上一访问页面
weixin_34652034的博客
03-09 443
需求描述:访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录跳转登录页面login.php,怎么实现登录后返回到刚才访问的页面。解决思路1:在跳转登录页面之前要将当前访问页面的url保存到cookie里面,登录验证授权通过后,从cookie中取出这个url值,跳转到该url指定的页面。具体实现基于ThinkPHP框架,会有一个父类控制器。把这个设置cookie的代码加到这个Ba...
HTMl账号密码登录跳转下一个页面问题/网页输入正确的账号面膜登录下一个界面/PHP网页禁止某个链接直链访问
qq_38962479的博客
07-31 1万+
<html lang="en"> <head> <meta charset="UTF-8"> <title>登录界面</title> <link rel="stylesheet" href="登录界面.css"> </head> <body> <div class="login"> <h1>Welcome</h1> <div class="text"> <i
密码访问单页自定义跳转页面HTML源码
最新发布
CSDN专家-微编程的博客
08-30 568
密码访问单页自定义跳转页面HTML源码,添加了js自定义密码跳转页面。需要正确输入密码才能跳转目标地址。源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面。
实现登录页面登录成功后跳转过程(个人理解学习,代码不完整)
Warmth_Dream的博客
07-05 1万+
function login()    {        var userName = document.getElementById("loginName").value;//通过ID获取元素        var pwd = document.getElementById("loginPwd").value;        var checkUrl = "&lt;%= _basePath%&g...
php授权密码后跳访问页面,微信网页授权成功之后跳转到上一页
weixin_30380991的博客
03-10 269
publicfunctionwxOauth(){var_dump($_SERVER["HTTP_REFERER"]);die();if(isset($_GET['code'])){$token=$this->weObj->getOauthAccessToken();$userinfo=$this->weObj->getOauthUserinfo($token['acce...
用html和css写登陆页面并且跳转网站
2201_75903640的博客
08-24 3648
【代码】用html和css写登陆页面并且跳转网站。
安卓登录注册相关-Android条件判断用户名和密码登录跳转页面记住密码自动登录.zip
07-29
本压缩包包含了一些关于Android平台上的登录注册功能的实现,尤其是条件判断、用户名和密码的验证、登录跳转到主页面以及记住密码和自动登录的机制。以下是这些关键知识点的详细解释: 1. **条件判断**:在登录...
小程序里面如何实现在登陆界面输入正确账号密码跳转到指定页面manall
05-03
在小程序中,可以通过以下步骤实现在登陆界面输入正确账号密码跳转到指定页面: 1. 在登录页面设置账号和密码的输入框,并且设置一个“登录”按钮。 2. 绑定“登录”按钮的点击事件,通过获取输入框中的账号和...
账号密码正确 qml页面跳转
06-02
实现 qml 页面跳转,你可以使用 Qt 提供的 Stack...这样就能实现简单的页面跳转了。当需要返回到上一个页面时,可以使用 StackView 的 pop() 方法。 更多关于 StackView 的使用方法和属性,请参考 Qt 官方文档。
php密码跳转页面,给php页面加上密码,输入正确密码才能查看
weixin_34489089的博客
04-10 1256
在自己的网站,我们可能会遇到有些页面不想让别人看到,但自己又想方便的访问查看,比如网站的php探针页面,暴漏了很多服务器的信息,存在安全隐患,那么给这个页面加上一个密码,输入正确密码才能访问就是解决这个问题的最佳方法了。效果如下图:实现方法很简单,就一段php代码,复制下面代码到需要加密的页面的...
设计简单登陆页面实现数据库对接以及判断用户名与密码是否正确
JohnnyG2000的博客
01-08 3560
内容:. 自己写一个登陆页面,并能实现对接数据库,判断用户名与密码是否正确。 练习sql-map-master的1-7关 test.php Document 欢迎来到西安欧鹏 登录 user: password: welcome.php Document <?php $username=$_GET['user']; $password=$_GET['password
laravel php 跳转页面跳转页面,Laravel 5.4重新登录实现跳转登录页面的原理和方法...
weixin_36187176的博客
03-13 452
前言本文主要给大家介绍的是关于Laravel5.4重新登录跳转登录页面的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:一、应用场景:用户登陆后存在过期时间,超时用户需重新登录。例:当用户在/user/2 页面,登陆过期后跳转到登陆页面,登陆后用户还应在/user/2而不是home/index。二、实现原理在判断用户过期后,存储用户当前的url地址到session中,下次...
管理员用户不同身份登录页面代码PHP,wordpress管理员登录和普通用户登录跳转到不同页面-♚付涛纪实阁♚...
weixin_28766581的博客
03-28 2098
这篇文章将向您展示WordPress用户登录后如何重定向到指定页面或者文章的技巧。 一、重定向到网站管理面板。 将以下代码添加到您的当前主题的 functions.php 文件中 二、重定向到指定页面或者文章 可以修改代码中的custom-page为某个页面或者文章的链接…..默认情况下wordpress管理员登录地址和普通注册用户后台登录地址都是跳转到后台同一个界面,怎样设置根据不同的用户页跳转...
php表单登录,点击登录跳转显示代码问题
Familiar1的博客
06-16 1542
问题:在登录页面中点击登录跳出来的是相对应.php文件中的代码 一、如下图: 点击登录 显示代码 原因:因为该html文件不在本地服务器上运行,也就是没有连上服务器。(apache) 问题解决: 在.html文件前面加上localhost,然后再访问。 问题解决。 感谢您的阅读,希望能给您带来帮助。 分享知识,让生活更美好! ...
html5网页密码框输入正确跳转_常用HTML5新特性
weixin_36318306的博客
01-04 1539
新增特性都只兼容IE9以上,随着技术发展,这个兼容性问题应该越来越不重要了,新标签将会大量使用。1、HTML5新增语义标签之前布局基本用div,但是div是没有语义的。<header>:头部标签<nav>:导航标签<article>:内容标签<section>:定义文档某个区域<aside>:侧边栏标签<footer>:尾部...
Wincc点击按钮弹出输入账号密码窗口,密码正确直接跳转到某个画面的实现方案
Amosi's Blog
04-29 1万+
问题详情 想在Wincc中实现以下功能:点击按钮弹出登录对话框,如果账户密码正确就直接跳转到某个页面实现过程 新建一个Wincc项目,创建一个用户user1,设定好密码。新建两个页面NewPdl0和NewPdl1。在Newpdl0上新建一个按钮,按钮的鼠标点击事件添加以下c脚本。 #include "apdefap.h" void OnClick(char* lpszPict...
超简单的Web登陆界面跳转
热门推荐
Leonadoice的博客
05-08 1万+
一个request只对应一个jsp中的值 所以有两种方法 跳转网页 1 jsp 标签隔开 但是很乱 2 cookie 服务器跳转 两种机制不一样,代码编程不一样,第一种服务器并没有真正跳转 ...
写文章

热门文章

  • js 在字符串中引入变量 19173
  • 登录页面实现账号密码正确之后才进行页面的跳转 14967
  • Warning: Each child in a list should have a unique “key” prop 14184
  • ReferenceError: XXX is not defined 7827
  • react前端搭配express后端搭建 2498

分类专栏

  • react 4篇
  • 网页前后端

最新评论

  • 登录页面实现账号密码正确之后才进行页面的跳转

    m0_62077909: 你好,请问下这是相当于不用数据库的情况下,账号密码不写死是嘛?

最新文章

  • ReferenceError: XXX is not defined
  • react-bootstrap的模态框Modal设置show的回调函数
  • react笔记
2020年8篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司鹤壁外贸网站优化价格表嵩山网站优化新乡网站排名优化哪家正规口碑好的优化网站滨州网站seo优化开发合肥网站快速排名优化东至网站优化费用多少优化网站seo公司评价网站的优化方案优化网站加盟餐饮北京市网站优化加盟优化网站提高选云速捷慈东工业区网站优化推广网站的优化 排名优化网站数据分析论坛网站优化方式有哪些服装行业网站优化计划宿迁网站seo优化方案外贸网站优化建设费用夏津网站优化有哪些服务好的网站优化哪家靠谱优化网站的经历怎样对网站进行内外部优化印刷网站优化哪家便宜温州网站优化电池充电铁岭网站设计优化公司网站排名优化广金苹果出词快快照seo网站优化丹阳网站排名优化如何优化网站排名靠后的关键词香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化