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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++面经

编译、链接与库编译单文件编译多文件编译 动态链接与静态链接静态链接动态链接 面向对象c⾯向对象 三大特性封装继承多态静态多态(模板或重载)动态多态(面向对象、继承、多态、虚函数) 面向对象和面向过程语言的区别面向过程面向对…

GPT-4,究竟强大在哪里?

2023年3月15日,OpenAI向全世界进行了GPT-4的发布会,整个世界都为之沸腾了。GPT-4究竟是有多厉害?为什么能造成这么大的影响?今天小灰来仔细讲解一下。 基础配置 先说说基础配置,之前小灰分享过,GPT-3.5有17…

【EasyPoi实战系列】Spring Boot集成EasyPoi - 第467篇

历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 6…

解密Prompt系列1. Tunning-Free Prompt:GPT2 GPT3 LAMA AutoPrompt

借着ChatGPT的东风,我们来梳理下prompt范式的相关模型。本系列会以A Systematic Survey of Prompting Methods in Natural Language Processing这篇综述为基础,分门别类的整理下这几年比较有代表性的prompt模型。或许你还以其他形式看到过prompt概念&…

未来式人工智能教育在国内的现状

无论是高空户外还是深海水下,或者火灾、地震现场,危险环境让身处其中的工作人员面临巨大威胁。而正在兴起的特种机器人,有望代替人类,在危险现场完成任务。格物斯坦表示:特种机器人,是机器人的一个重要分支…

chatgpt赋能python:Python如何隐藏进程

Python如何隐藏进程 介绍 进程是指运行中的程序在操作系统中的一个实例。在计算机系统中,进程通常都可以被用户或者其他程序所看到。然而,有时候我们需要隐藏进程,比如保护敏感信息或者防止恶意攻击。 Python是一种高级编程语言&#xff0…

UP主高薪裸辞转型独立开发者;LLM权威学习路线图;游戏开发最全AI工具盘点;LOGO制作保姆教程 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 Hugging Face 全球开源AI游戏开发挑战赛,7月8日开始 Open Source AI Game Jam 是 Hugging Face 举办的首场开源游戏开发挑…

ChatGPT到底是什么,带领大家详细解读!

前言 ChatGPT的强大程度相信很多同学都已经体验过了,无论是编写文章,问答,写代码展现除了非常惊艳的能力。一定喜欢技术的同学一定好奇,ChatGPT是如何做到“全知全能”,即会写文章,又会表达总结&#xff0…

IDE + ChatGPT,这款编辑器真的做到可以自动写代码了!

介绍 Cursor 是集成了 GPT-4 的 IDE 工具,目前免费并且无需 API Key,支持 Win、Mac、Linux 平台,可以按要求生成代码,或者让 AI 帮助优化代码,分析代码。Cursor目前已经集成了openai的GPT-4,它或将彻底改变…

CSDN周赛第30期题目解析(天然气定单、小艺读书、买苹果、圆桌)

CSDN周赛第30期,我应试成绩“0”分。试着对天然气定单、小艺读书、买苹果🍎、圆桌四个题目,完成算法解析。 (本文获得CSDN质量评分【91】) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖…

猿人学逆向比赛第四题-gRPC题解 | Go版本

大家好,我是TheWeiJun,欢迎来到我的公众号。在现代互联网中,某些网站、App会使用gRPC进行数据传输,以加强数据的安全性和保密性。然而,逆向加密算法并不是一件简单的事情。本文将探讨如何逆向猿人学App的gRPC协议&…

ChatGPT 扩展来自动化你的生活

除非您一直生活在岩石下,否则您可能知道 ChatGPT 如何改变业务以及我们的工作和沟通方式。您只需访OpenAI 的网站即可解锁 ChatGPT 的强大功能。 但是,如果我们不仅可以在其官方网站上使用 ChatGPT,还可以在 微信、Excel、Word 以及更多地方使…

chatGPT的到来,是否意味新时代的来临

chatGPT是一种人工智能技术驱动的自然语言处理工具,是一种基于语言对话场景的语言模型,它使用了Transformer神经网络架构,也是GPT-3.5架构,功能具备上知天文下知地理,还可以进行撰写邮件、视频脚本、文案、翻译、代码等…

windows的软件能在鸿蒙系统运行吗,如果鸿蒙系统能不能兼容windows的所有应用软件,会让你惊喜吗...

如果华为能够让鸿蒙系统兼容Windows系统上所有的应用,那华为鸿蒙系统可能已经超脱时代了。 你得知道在两个不同平台,硬件和内核不同的情况下,华为如果想兼容所有的平台,可能所花费的人力,财力会更巨大。我们知道鸿蒙系…

为什么鸿蒙内核是安卓,鸿蒙系统发布,为什么有人说其为安卓换壳?

2021年4月,鸿蒙系统内测版正式面向消费者开放,而我由于在校读书也变没有时间去专门去进行鸿蒙系统的深度体验只是回来后简单的体验一下 首先我要说的是-鸿蒙它……不是安卓套壳!!!我之前在评论区经常看见有人说鸿蒙就是…

华为p10 鸿蒙,全面上线!华为鸿蒙新消息传来,这是要彻底替换安卓

自从手机出现后,手机操作系统就掌握在少数几个厂商手中,在功能机时代,诺基亚几乎掌控了塞班系统,而微则掌握Windows mobie系统。 苹果开启智能手机时代后,手机系统主要被苹果和谷歌掌控。其中,苹果的IOS系统…

鸿蒙OS到底是不是Android套皮?(不多说,看源码!)

人生就像一场旅行,不必在乎目的地。在乎的,是沿途的风景以及看风景的心情。 #正文 某人曾说「没有调查就没有发言权」 最近鸿蒙系统关注度好高,支持与反对、看好和看衰、「自主的全场景分布式系统」和「Android套壳」各执一词,吵…

鸿蒙会干掉安卓吗?刚刚 ,首款搭载华为鸿蒙OS终端正式亮相!

点击“开发者技术前线”,选择“星标?” 13:21 在看|星标|留言, 真爱 编辑:可可| 来源:华为,创业邦 8月9日,也就是昨天下午,华为鸿蒙OS终于揭开了面纱。 8月10日下午,在华为开发者大…

谷歌失算了,华为的鸿蒙系统在海外市场撕开了一大口子

近日媒体报道指出华为手机在北方某国的销量暴涨三倍,成为该国出货量增速第一的手机品牌,带动鸿蒙系统用户激增,这也是鸿蒙系统在海外市场首次取得突破,对谷歌的安卓系统造成了新一轮的挑战。 由于众所周知的原因,谷歌对…

鸿蒙系统拆包,我已经拿到华为鸿蒙升级包,正在拆包分析鸿蒙与安卓的关系

我已经拿到华为鸿蒙升级包,正在拆包进行分析 可以说华为鸿蒙用在手机上的操作系统与微内核没有任何关系,华为的微内核是用在其他地方的。 images里有这些文件 boot.img ramdisk.img recovery.img等等 拆包后整体的文件 首先看一下init.environ.rc文件的内…