令牌认证和百度地图
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)多对多的关系:例如 学生和课程之间的关系。生成第三张表

相关内容

热门资讯

两只大牛股,紧急发声:不属实!... 5天3板超声电子:“超声电子高频板通过英伟达认证”情况不属实,目前无产品供货给英伟达9月13日晚间,...
科创板创新药企BD授权交易总额... 2026年半年度财报季已收官,在创新药企业以业绩扭亏和BD兑现吸引市场目光的同时,以CXO为代表的上...
蔚来李斌1-8月交付增近58%... 9月9日消息,上海蔚来汽车有限公司副总裁品牌与传播资深专家马麟在微博透露,9月8日下午,蔚来创始人、...
京东物流部署过万前置仓应对手机... IT之家 9 月 13 日消息,据京东物流黑板报,9 月,多个品牌旗舰手机集中上新。针对消费者希望尽...
特朗普让泽连斯基勿袭击俄柴油燃... 9月13日,当地时间9月13日,美国总统特朗普要求乌克兰总统泽连斯基停止袭击俄罗斯柴油燃料设施,称相...
下周,年内最便宜新股启动打新 ... 2026.09.13本文字数:1467,阅读时长大约2分钟作者 |第一财经 安卓封图 |AI生成下周...
北京:激活地理信息要素赋能城市... 9月13日,从北京市规划和自然资源委员会获悉,《北京市测绘地理信息条例》已由北京市第十六届人民代表大...
接下来该如何逃顶?建议看看这篇... 最近这段时间,很多朋友的心里其实都是悬着的。行情走到这个位置,大家见面聊得最多的就是,接下来到底该怎...
武汉:到2035年武汉区域科技... 9月13日,武汉市委十四届十三次全会召开,审议通过了《关于打造具有全球竞争力的开放创新生态 高水平建...
卡塔尔股市收盘上涨0.25% 9月13日,卡塔尔证券交易所主要股指今日收盘上涨0.25%,报9848.95点,上涨24.46点。全...