Vue电商项目--登录与注册

登录注册静态组件

刚刚报了一个错误,找不到图片的资源

assets文件夹--放置全部组件共用静态资源

 在样式当中也可以使用@符号【src别名】。切记在前面加上 

注册业务上

先修改原先的接口成这个按钮

 然后把input框里面的数据保存到data中 

注册业务下

就是点击获取验证码,就要发起请求

下面是接口:

/api/user/passport/sendCode/{phone}

获取验证码

get

/api/user/userAddress/auth/findUserAddressList

获取用户地址信息

get

请求给完,写仓库。这里把登录和注册合为一个仓库 

 然后去调用它

 成功返回了一个验证码

获取验证码的这个接口,把验证码返回,但是正常情况,后台验证码发送到用户手机上【省钱】

 这样就把数据存储进去了,此时我们就可以在组件中拿数据了

 添加一个事件,用于获取vuex中的验证码

 获取成功

完成下一个逻辑,俩个密码之间的判断

 当然,注册按钮也是有点击事件,也是向服务器发起请求

看接口文档 

注册用户

请求地址

/api/user/passport/register

请求方式

POST

参数类型

参数名称

类型

是否必选

描述

phone

string

Y

注册手机号

password

string

Y

密码

code

string

Y

验证码

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": null,

    "ok": true

}

 先写接口,然后去仓库发起请求

 派发action

 测试登录成功

完善代码 

 成功回调 

登录业务(token)

在登陆界面收集用户名和密码

然后是登陆的接口

请求地址

/api/user/passport/login

请求方式

POST

参数类型

参数名称

类型

是否必选

描述

phone

string

Y

用户名

password

string

Y

密码

返回示例

成功:

{

code: 200

message: "成功"

data:{

nickName:"Administrator",

name:"Admin",

token: 90aa16f24d04c7d882051412f9ec45b"

}

ok: true

}

失败:

{

   code: 201

message: "失败"

data: null

ok: false

}

先写接口,然后在仓库中去调用这个接口

 然后去派发action 

写一个登陆的回调

 这里我们要注意的一点,就是阻止表单的默认行为。

这里有一个注意点

Cannot access ‘phone‘ before initialization 我报了这个错误

解决方案就是const {phone,password}=this;少了;

 登录成功他会返回三个值

其中一个token要注意

登录成功的时候,后台为了区分你这个用户是谁-服务器下发token【令牌:唯一标识符】

登录接口:做的不完美,一般登录成功服务器会下发token,前台持久化存储token,【带着token找服务器要用户信息进行展示】

我们需要持久化存储这个token的值,但是要注意的一点就是,vuex是不能持久化的存储数据

用户登录携带token获取用户信息

复习:

1.完成了登录和注册的静态组件【assets文件夹:组件共用的静态资源 css当中书写@符号】

2.表单验证暂时没有处理,最后一天统一处理

3.vuex存储数据非持久化

添加了token校验获取用户登录信息,用户登录只保存用户的token

token校验

http://182.92.128.115/api/user/passport/auth/getUserInfo

先写接口

 写完api,搞三连环

然后在请求拦截器中,设置他的token

  此时登录,然后跳转就能token了

 然后使用v-if把登录先后页面需要展示的显示出来

但是在刷新,token就没了。因为没有再次派发事件,所以,现在我们这种写法没有持久化存储,不完整的。

登录业务中讲解存在问题

持久化存储,也可以采用外部封装的方式

 外部封装了一个,然后引用它

 现在我们确实是存了,但是并没有取出来使用

上面获取用户信息的代码有点问题,我并没有写完成,因此参数没有传进来。因此报错了,下面是完整代码

async getUserInfo({commit},data){
        let result=await reqUserInfo(data)
        if(result.code==200){
            commit("GETUSERINFO",result.data)
        }
    }

 这就能实现持久化存储 

也可以封装成一个模块

但是现在只是在home页面中有效果,因为我们只在home配发了这个。

现在还存在俩个问题1.多个组件展示用户信息需要在每一个组件的mounted中出发 this.$store.dispatch('getUserInfo')不行

2.用户登录了,就不应该在会有登录页 

退出登录

先给退出按钮绑定一个事件

1.需要发请求,通知服务器退出登录【清除一些数据,token】

2.清除项目当中的数据【userinfo.token】 

退出请求文档:

退出登陆

请求地址

/api/user/passport/logout

请求方式

GET

参数类型

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": null,

    "ok": true

}

老样子先写api

然后仓库三连环 

然后还有清除本地数据 

然后派发action

 退出成功,返回home页面 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/38805.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1. HTML5的新特性

HTML5的新增特性主要是针对于以前的不足, 增了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是IE9以上版本的浏览器才支持, 如果不考虑兼容性问题,可以大量使用这些新特性。 1.1 HTML5 新增的语义化标签 ●<header> : 头部标签 ●<nav&…

什么是Heatmap(热图)图表?用DHTMLX可实现快速构建

DHTMLX Chart是DHTMLX最新发布的JavaScript UI小部件库的核心内容之一&#xff0c;这个图表小部件收到了几个重要的更新&#xff0c;但其中最引人注目的是一个新的数据可视化选项——日历热图。 DHTMLX专注于JavaScript和HTML5 UI小部件和库&#xff0c;以帮助开发人员更快地构…

爬虫相关知识与面试题目

常见的反爬虫和应对方法 参考:https://www.cnblogs.com/bsdr/p/5151891.html 0x01 常见的反爬虫 这几天在爬一个网站&#xff0c;网站做了很多反爬虫工作&#xff0c;爬起来有些艰难&#xff0c;花了一些时间才绕过反爬虫。在这里把我写爬虫以来遇到的各种反爬虫策略和应对的…

python selenium.webdriver 爬取政策文件

文章目录 获取文章链接批量爬取政策文件应用selenium爬取文件信息数据处理导出为excel 获取文章链接 获取中央人民政府网站链接&#xff0c;进入国务院政策文件库&#xff0c;分为国务院文件和部门文件&#xff08;发改委、工信部、交通运输部、市场监督局、商务部等&#xff…

uni.app开发小程序如何获取当前经纬度、位置信息以及如何重新发起授权定位

uni.app开发小程序如何获取当前经纬度、位置信息以及如何重新发起授权定位 前提 先去微信小程序后台申请 wx.getLocation接口1.引入下载的高德小程序SDK2.data中定义所需变量3.onLoad中获取实例 并调用获取经纬度 位置方法4.定义获取定位经纬度 位置信息方法5.用户拒绝授权后,可…

架构训练营学习笔记3-5:消息队列备选架构设计实战

本文属于架构训练营学习笔记系列&#xff1a;模块3的案例讲解 总的来说&#xff0c;这篇从更高的维度去讲&#xff0c;而不是关注消息队列的常见问题&#xff1a;比如消息如何发送&#xff0c;消息如何不丢失 &#xff0c;消息如何不重复。总体上分为2部分&#xff1a;利益干系…

数据可视化:揭开数据的视觉奇迹

随着大数据时代的到来&#xff0c;我们面临着海量的数据&#xff0c;如何从中获取有价值的信息成为一项重要的挑战。数据可视化作为一种强大的工具&#xff0c;通过图表、图形和交互界面&#xff0c;将数据转化为可视化的形式&#xff0c;帮助我们更好地理解和分析数据。 数据可…

用OpenCV进行图像分割--进阶篇

1. 引言 大家好&#xff0c;我的图像处理爱好者们&#xff01; 在上一篇幅中&#xff0c;我们简单介绍了图像分割领域中的基础知识&#xff0c;包含基于固定阈值的分割和基于OSTU的分割算法。这一次&#xff0c;我们将通过介绍基于色度的分割来进一步巩固大家的基础知识。 闲…

kafka(一)

一&#xff1a;kafka架构介绍 1. Brokers kafka集群包括一个或者多个服务器&#xff0c;服务器的节点叫做broker。 2. Topic 类似于数据库中的table。物理上不通的topic会分开存储。一个topic的消息会存储在多个broker上。但是在读取的时候&#xff0c;只要选择好topic&…

autok3s k3d rancher研究

参考 功能介绍 | Rancher文档AutoK3s 是用于简化 K3s 集群管理的轻量级工具&#xff0c;您可以使用 AutoK3s 在任何地方运行 K3s 服务。http://docs.rancher.cn/docs/k3s/autok3s/_index 什么是 AutoK3s k3s是经过完全认证的 Kubernetes 产品&#xff0c;在某些情况下可以替…

Docker 容器生命周期:创建、启动、暂停与停止----从创建到停止多角度分析

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

vue 限制表情输入

在main.js中加入下列代码 import emoji from ./util/emojiVue.directive(emoji,emoji) 在util文件夹中加入emoji.js 下列代码 const findEle (parent, type) > { return parent.tagName.toLowerCase() type ? parent : parent.querySelector(type)}const emoji {bi…

小程序MobX创建store并实现全局数据共享

查看小程序根目录中是否存在package.json文件 在项目根目录运行cmd 没有package.json文件输入npm init -y初始化一下,初始化一个包管理 安装MobX npm install --save mobx-miniprogram4.13.2 mobx-miniprogram-bindings1.2.1 小程序菜单栏工具–构建npm 根目录创建store文…

Hive概述

Hive 一 Hive基本概念 1 Hive简介 学习目标 - 了解什么是Hive - 了解为什么使用Hive####1.1 什么是 Hive Hive 由 Facebook 实现并开源&#xff0c;是基于 Hadoop 的一个数据仓库工具&#xff0c;可以将结构化的数据映射为一张数据库表&#xff0c;并提供 HQL(Hive SQL)查询…

Dcat-admin使用 Alpine 双向数据绑定

介绍 Alpine.js 这东西真的轻量级&#xff0c;和vue相似&#xff0c;和 livewire 同一个作者&#xff0c;推荐大家使用&#xff0c;可以平替jquery 效果 实现 在 bootstrap.php 引入js Admin::headerJs([https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-y/alpinejs/3.9.0/…

掘金量化—Python SDK文档—4.数据结构

目录 Python SDK文档 4.数据结构 4.1数据类 Tick - Tick 对象 报价quote - (dict 类型) Bar - Bar 对象 L2Order - Level2 逐笔委托 L2Transaction - Level2 逐笔成交 4.2交易类 Account - 账户对象 Order - 委托对象 ExecRpt - 回报对象 Cash - 资金对象 Position - 持仓对象…

Windows操纵kafka

这里写目录标题 启动kafk创建一个测试主题查看所有主题查看first详细信息修改分区数(分区数只能增加 不能减少)删除主题生产者生产数据消费命令 启动kafk 安装目录下 .\bin\windows\kafka-server-start.bat .\config\server.properties创建一个测试主题 安装目录下 .\bin\wi…

从零学习微服务

更新中&#xff0c;关注不断更… 如果觉得需要补充哪些内容&#xff0c;可以在评论区留言或者私信我哦 文章目录 &#x1f31f;引入&#x1f3b6;Feign&#x1f63a;Ribbon&#x1f40e;Naocs&#x1f368;Gateway&#x1f36c;Docker&#x1f6a2;RabbitMQsentinelseata &…

SpringBoot + Docker 实现一次构建到处运行

一、容器化部署的好处 Docker 作为一种新兴的虚拟化方式&#xff0c;它可以更高效的利用系统资源&#xff0c;不需要进行硬件虚拟以及运行完整操作系统等额外开销。 传统的虚拟机技术启动应用服务往往需要数分钟&#xff0c;而 Docker 容器应用&#xff0c;由于直接运行宿主内…

程序员如何制作PPT?

有道无术&#xff0c;术尚可求也&#xff1b;有术无道&#xff0c;止于术。大家好&#xff0c;我是程序员雪球&#xff0c;今天让我们一起探讨如何从零开始制作高质量的 PPT。 上周&#xff0c;领导要求我撰写一份关于 4到6月持续集成运营分析的报告&#xff0c;并通过 PPT 的形…