‘壹’ vue项目cookie问题,线上同域可以,但本机代理方式不行
问题描述 : 后端在服务端设置了cookie,但是前端本机调试测试环境无法得到cookie,也无办法自动带过去其它接口。肢茄伍但是什么不改变打包发到测试上去就可以。前端如何解决?
解决 : 1: 让后端从接口中返回cookie值。
2: 然后自已在自已本域中建立cookie,跟其cookie值和命名一致。
3: 设置 axios.withCredentials =true,跨域才可以带过去。
原因:cookie只能纳穗在自已域设置cookie,所以本地和服务端是不同域,无法得到。所以要使用第一种方式得到cookie的值,然后在本地域localhost设置cookie,然后再设置axios可以历或进行跨域发送,这样来解决问题。
‘贰’ 怎么让shiro给前端发cookie
shiro如何返回cookie给前端shiro如何返回cookie给前端。
有个springboot项目,登录和权限采用shiro管理,某天前端开发人员突然说小程序页面里面无法把cookie传递给后端。
‘叁’ 后端设置的cookie,前端能控制失效时间吗
不能。
后端写cookie对前端来说就是个黑盒子,我只要向后端发送申请,就可以拿到当前用户的信息,尽管我不知道用户的id。操作简单,理解起来不太友好。所以前端不能修改。
‘肆’ 基于cURL命令行工具进行测试
cURL是常用的命令行操作工具,我们会用这个命令必须要进行Account API的调用。cURL只能发起API调用,本身并不具备结果验证能力。
比如curl -i -H "Accept:application/json" -X GET " http://127.0.0.1:8080/account/ID "
其中命令行参数:
-i:说明显示response的header信息
-H:用于设定request的header
-X:用于指定执行的方法衡搏,使用了GET方法,其他常见的方法还有POST、PUT、DELETE等,如果不知道-X,默认方法是GET。
-d:用于设定http参数,http参数可以直接加在URL的query string,也可以用-d带入参数,参数之间可用&串接,或使用多个-d
-b:传丛敏递cookie时,用于渗拦枝指定cookie文件的路径
session记录使用者登入信息,后端会传一个session ID给前端,前端在发给后端的requests的header中就需要设置此session ID,后端便会以此session ID识别出前端是属于具体哪个session.
curl -i -H "sessionid:XXXX" -X GET "http://XXX/api/demoAPI"
使用cookie,认证成功后,后端会返回cookie给前端,前端可以把该cookie保存成为文件,当需要再次使用该cookie时,再用 -b cookie_file 的方式在request中植入cookie既可正常使用
将cookie保存为文件:
curl -i -X POST -d username=robin -d password=password123 -c ~/cookie.txt "http://XXX/api/demoAPI"
载入cookie到request中:
curl -i -H "Accept:application/json" -X GET -b ~/cookie.txt "http://XXX/api/demoAPI"
‘伍’ 后端用cookie实现注册登录难吗
后端用cookie实现注册登录难。要求和步骤很多,具体如下:
1、进入注册页面,用户填入用户名、密码、手机号等注册信息。
2、前端验证用户填入的信息是否符合要求,若不符合要求,就提示用户输入错误,重新输入。若符合要求,就将注册信息作为post的第四部分(字符串),向后端发起post请求。
3、后端收到post请求,将post的第四部分(字符串)转变成能用的格式。
4、凯首后端拿到数据后,进行数据验证。数据验证若不通过,后端就返回400(状态码)和错误信息(JSON格式)给前端,前端根据错误信息,派态提示用户哪里输入错误。数据验证若通过,就将数据存入数据库。
5、存入数据库时,先检查数据库中是否包含该用户信息。
6、若包含,后端返回错误信息给前端,前端提示用户已注册。若不包含,就将该用户数据写入数据库,并向前端发送响应,前端提示用户注册成功并跳转至登录页面。
7、用户填入登录信息。
8、前端验证登录信息是否符合要求,若不符合,就重新输入。若符合,将登录信息作为post的第四部分,向后端发起post请求。
9、后端收到post请求,将post的第四部分(字符串)转变成能用的格式。
10、后盯羡数端拿到数据后,与数据库的数据进行比对。
11、若发现数据库没有该用户信息,就向前端发送错误信息,前端提示用户未注册。
12、若数据库匹配到该用户信息,并且信息一致,说明该用户已注册,后端发送响应给前端,前端提示用户登录成功并跳转至首页(或其他页面)。