令牌认证和百度地图
admin
2024-03-29 07:24:46
0

一、令牌

1.什么是token

'令牌'的意思,是一个字符串,在客户端第一次请求服务器时由服务器生成,然后响应给客户端(保存),当客户端再次请求服务器时,带上token,就不需要再带用户名和密码

2.作用

(1)防止表单重复提交:在表单中加入隐藏的表单控件,在这个隐藏的表单控件中带上token字符串

​(2)进行身份验证:

        a、为什么要进行身份认证:基于http协议的请求,无状态(当客户端与服务器之间的请求-响应过程完成后,客户端和服务器就断开了联系、服务器无法记录或跟踪客户端)。当客户端再次向服务器发起请求的时候,服务器需要对客户端的身份进行认证。

        b、传统的身份认证方式:

                cookie:在服务器端生成,保存在客户端。

                session:在服务器端生成,保存在服务器端

        c、token认证:在服务器端不需要保存用户的身份信息,流程如下:

              1.客户端使用用户名和密码请求登录。

              2. 服务端收到请求,验证用户名和密码。

              3.验证成功后,服务端会生成一个令牌,然后把这个令牌发送给客户端。

              4. 客户端收到令牌后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。

              5.客户端每次向服务端发送请求的时候都需要带上服务端发给的令牌。

              6.服务端收到请求,然后去验证客户端请求里面带着令牌,如果验证成功,就向客户端返回请求的数据。

        d、token的本质:是对用户的信息进行加密、解密,因此保存在客户端的token是加密后的一个字符串

3、在node.js中实现token认证:即在前后分离的项目中实现token认证

(1)node项目使用JWT模块,实现token认证

JWT:JsonWebToken,是一种身份认证和授权的方案,即客户端向服务器发送请求时,在请求信息中携带token,服务器端接收到请求信息后,对token进行验证,若验证通过则向客户端响应数据。

(2)JWT中的函数:

        a、sign(payload, secretOrPrivateKey, [options, callback]):返回值一个字符串(即加密后的字符串)

                payload:需要加密的内容

                secretOrPrivateKey:加密字符串或密钥文件

                选项:其他参数

                        expiresIn:有效时间 // 如 '6h' 、'1d'

        b、verify(token, secretOrPublicKey, [options, callback]):返回值是逻辑值(true/false),验证token,token字符串一样、密钥也必须一致

                token:token字符串

                secretOrPublicKey:加密时用的密钥

                选项:是参数列表

        c、decode(token [, options]):解密方法,返回的是明文

                token:token字符串

                options:是一个逻辑值(true/false)。是否以同步方式解码

(3)创建Express项目:

        a、安装JWT对应的模块:jsonwebtoken

        b、创建接口文件:

4.token验证的流程

        --第一次向服务器发起登录请求时,没有token信息

        --当用户登录后,在服务器端生成token,token中包含那些信息由用户决定,然后将token响应给客户端

        --当客户端接收到服务器端相应的token后,将token存入本地的缓存(localStorage)中

        --当客户端再次访问服务器时,需要在请求头中包含token;服务器端在接收到客户端的请求后,先查找客户端的请求头中是否有token,若没有则表明该用户是非法用户,不响应任何数据;若有token,则表明该用户是合法用户,就响应数据

5.Express实现过程

        --安装、导入jsonwebtoken模块

        --在登录接口时生成token并返回给客户端

        --在客户端接收到的token保存到本地缓存

        --当客户端再次访问(包括非法访问)服务器,服务器端会对token进行验证

        --客户端每次向服务器发起请求时都必须携带token,否则视为非法用户

二、百度地图

1、百度开发者的账户申请

2、申请AK密钥

三、数据库分析(关系型数据库)

1、能找出项目的实体

2、分析实体之间的关系:

​ (1)一对一的关系:例如 身份证和居民之间的关系。用一张表就可以表示

​ (2)一对多的关系:例如 班级和学生之间的关系。一端不动,多端增加一列用来关联一端

​ (3)多对多的关系:例如 学生和课程之间的关系。生成第三张表

相关内容

热门资讯

【美媒披露美军武器库存吃紧,政... 【美媒披露美军武器库存吃紧,政府拟动员车企增产武器】据美国《华尔街日报》4月15日披露,由于俄乌冲突...
“特朗普如此命令以色列停火,换... 【文/观察者网 熊超然】 虽然黎以为期10天的停火协议于当地时间4月16日生效,但美国方面一度“认...
停火前最后一刻,以色列炸死黎巴... 黎巴嫩和以色列之间达成的为期10天的停火协议已于当地时间4月17日零时生效。然而,据英国路透社报道,...
中东战火正在绞杀你的工资和饭碗 文︱陆弃 有个真相,没几个人敢明着说——中东那摊子事,早不是单纯的地区冲突了。 它就像一只隐形的手,...
霍尔木兹海峡对商船开放通行,国... 伊朗外长17日表示,霍尔木兹海峡在黎巴嫩与以色列停火期间对所有商船通行完全开放,国际原油期货价格受此...
巴西“选美皇后”竟是毒枭妻子!... (来源:现代快报) 豪车、游艇、音乐节、派对……一名经常在社交媒体上炫富的巴西选美皇后,竟然依靠贩毒...
美国又一艘核动力航母着火,三名... 继“福特”号航母发生火灾后,美国海军“艾森豪威尔”号航母也遭遇火灾。 “艾森豪威尔”号航母 据央视...
曼宁格驾车与火车相撞,不幸身亡 据体坛周报,4月16日,欧洲足坛传出噩耗:前奥地利“国门”亚历山大·曼宁格不幸因遭遇严重的交通事故去...
“特朗普不是世界皇帝” 当地时间4月16日,巴西总统卢拉重申美国总统特朗普“不是世界皇帝”,不能一直以战争威胁其他国家。他称...