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

news2024/9/25 15:27:02

登录注册静态组件

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

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页面 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渠道归因(三)基于Shapley Value的渠道归因

渠道归因(三)基于Shapley Value的渠道归因 通过Shapley Value可以计算每个渠道的贡献权重,而且沙普利值的计算只需要参加的渠道总数,不考虑顺序,因此计算成本也较低。 传统的shapeley value import itertools from …

2.带你入门matlab数理统计常见分布的概率密度函数(matlab程序)

1.简述 计算概率分布律及密度函数值 matlab直接提供了通用的计算概率密度函数值的函数,它们是pdf 和namepdf函数,使用方式如下: Ypdf(‘name’,K,A,B)或者:namepdf (K,A,…

低代码平台之流程自动化测试

随着低代码平台的快速发展,开发人员可以便捷、快速地开发流程应用程序,由于业务流程的复杂化和业务需求的不断变化,对业务流程进行优化和改进将更加频繁,在这个过程中,就要求企业的流程测试的效率和质量需要跟上低代码…

Stable Diffusion - AWPortrait 1.1 模型与 Prompts 设置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131565908 AWPortrait 1.1 网址:https://www.liblibai.com/modelinfo/721fa2d298b262d7c08f0337ebfe58f8 介绍:AWPortrai…

java类的静态变量

java类的静态变量称为类变量,非静态变量称为实例变量。 静态变量可以在声明时初始化,也可以不在声明时初始化。 通过下面方式可以访问类的静态变量: 类内部直接访问静态变量;通过类名访问静态变量;通过实例访问静态变…

C++数据结构X篇_08_C++实现栈的顺序存储与链式存储

本篇参考C实现栈的顺序存储与链式存储整理,先搞懂结构框架,后期根据视频利用c对内容实现,也可以对c有更高的提升。 文章目录 1. 栈的顺序存储2. 栈的链式存储 栈是一种特殊的数据结构,栈中数据先进后出,且栈中数据只能…

30张图带你弄懂 二叉树、AVL、红黑树,他们之间有什么联系,AVL树和红黑树如何平衡

树(Tree)是若干个结点组成的有限集合,其中必须有一个结点是根结点,其余结点划分为若干个互不相交的集合,每一个集合还是一棵树,但被称为根的子树。注意,当树的结点个数为0时,我们称这…

[已解决]Running setup.py install for MinkowskiEngine ... error

虚拟环境中安装MinkowskiEngine: pip install -U MinkowskiEngine --install-option"--blasopenblas" -v --no-deps 报错:“Running setup.py install for MinkowskiEngine ... error” 解决办法[链接][参考1]: (1&…

Unity 编辑器-创建模板脚本,并自动绑定属性,添加点击事件

当使用框架开发时,Prefab挂载的很多脚本都有固定的格式。从Unity的基础模板创建cs文件,再修改到应有的模板,会浪费一些时间。尤其是有大量的不同界面时,每个都改一遍,浪费时间不说,还有可能遗漏或错改。写个…

查询直播频道发起的签到记录

接口描述 1、通过直播场次id,查询签到发起记录 2、接口支持https协议 接口URL http://api.polyv.net/live/v3/channel/chat/checkin-by-sessionId 请求方式 GET 请求参数描述 参数名必选类型说明appIdtrueString账号appIdtimestamptrueLong当前13位毫秒级时间戳&…

OSPF实验2

OSPF实验2 要求: 1.如图连接,合理规划IP地址,所有路由器各自创建一个loopback接口 2.R1再创建三个接口IP地址为201.1.1.1/24、201.1.2.1/24、201.1.3.1/24 R5再创建三个接口IP地址为202.1.1.1/24、202.1.2.1/24、202.1.3.1/24 R7再创建三…

小红书如何开店,送你一份保姆级开店教程

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 今天,我们来谈谈小红书的电子商务。这也是今年非常流行的电子商务平台。很多人说…

《设计模式》责任链模式

《设计模式》责任链模式 定义: 责任链模式将链中每一个节点都看成一个对象,并且将这些节点对象连成一条链,请求会沿着这条链进行传递,直到有对象处理它为止,这使得多个对象都有机会接收请求,避免了请求发送…

warp框架教程3-path, method和自定义请求方法

path, method和自定义请求方法 path 是 warp 中的路由系统, 一个 web 框架的灵魂所在, 一个优美的路由系统可以给我们带来非常良好的使用体验, 而 warp 的路由体验本身就是非常 nice 的。在本文中将展示一个 RESTful 风格的 API 设计。下面先来学习一下 path 模块。 path 模块…

从小白到大神之路之学习运维第56天--------shell脚本实例应用2.0之有趣的知识

第三阶段基础 时 间:2023年7月10日 参加人:全班人员 内 容: shell实例 目录 shell脚本应用: 一、if判断 1、if判断的类型 1)单分支 2)双分支 3)多分支 2、单分支if判断 1&#x…

Could not increase number of max_open_files to more than 5000 (request: 65535)

修改MySQL 打开文件数量限制 修改内核限制 ulimit -n //查看系统限制 修改 /etc/security/limits.conf 添加 soft nofile 65530hard nofile 65535 mysql> SHOW VARIABLES LIKE open_files_limit; 通过 MySQL 命令行检查新限制。您可以使用以下查询,确保设置了新…

vue3使用less入门使用案例(webStrom)

文章目录 简介安装less基础代码效果 less进阶代码效果 简介 less&#xff1a;css预处理语言 安装 npm i less3.0.4 -Dless打包解释器 npm i less-loader5.0.0 -Dless基础代码 <template><div class"a"></div> </template><style lang…

Java Web Servlet (1)23.7.7

Servlet 1&#xff0c; Servlet 1.1 简介 Servlet是JavaWeb最为核心的内容&#xff0c;它是Java提供的一门动态web资源开发技术。 使用Servlet就可以实现&#xff0c;根据不同的登录用户在页面上动态显示不同内容。 Servlet是JavaEE规范之一&#xff0c;其实就是一个接口&a…

【日常记录】CentOS7.5 安装tomcat放行8080端口后无法访问

环境 操作系统版本信息&#xff1a; [rootlocalhost conf]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)JAVA版本信息 [rootlocalhost conf]# java -version openjdk version "1.8.0_372" OpenJDK Runtime Environment (build 1.8.0_372-b07) …

闲人闲谈PS之四十四——供应链透明化

惯例闲话&#xff1a; 近期工作和天气一样&#xff0c;如火如荼&#xff0c;前面1个月&#xff0c;拼全力搞了一个新功能&#xff0c;把闲人折腾的够呛&#xff0c;现在回头看看这个过程&#xff0c;倒也回味无穷&#xff0c;如何利用信息化工具&#xff0c;搞点数字化的活&am…