00:00
刚刚我们为了这个实现登录,我们写了一个结构,嗯,Session,并且呢,在数据库里边创建了一个session表,为了保存保存这个session。好,我们把这个呢准备工作准备,哎完了之后呢,其实呢,我们现在呢,已经是登录状态了,对吧?哎现在呢,每次发请求哎来刷新一下都会呢,携带着这样的一个cookie。那我们数据库里边呢,已经有session,已经有对应的session,已经有这个用户的一些信息,有用户名,还有用户的一个ID了,啊那只是呢,现在我回到首页之后呢,哎,这个时候呢,就不应该显示登录注册,诶这个购物车诶后台管理的好,那这个我们该怎么处理呢?我是不是在发这个请求时候,需要来看一下你有没有登录对吧。所以啊,就需要来获取这个cookie值了,哎,所以呢,哎,来找到我们这个访问首页的这个超链接啊。斜杠卖,看去的是哪儿?
01:01
嗯,Get page books by price,好,找到这一个。处理器函数。Get page books by price。直接点开。哎,在这啊,在这上面这些我们之前的去首页上,包括下边的啊,有一些函数呢,我们已经废弃了,已经不用它了,这些都注掉了啊,没有删除留着呢啊。虽然我们这个写后边的功能啊,加了一些方法,但是呢,也也这个废弃了一些方法,所以呢,这个呃,并不是说一直在加,一直在加这个呢,呃调完这个之后呢,之前呢,我们就呃不不要了,我就把它逐掉了啊并没有删除好哎在这儿获取页码呃获取价格,获取价格,最终呢,呃又。返回的是一个page件啊,返回一个配置,那这一个我们访问首页的时候,来这来这呢,在这个里边呢,我就得看一下你有没有登录了,诶对得看一下你有没有登录,那怎么来看呢?我是不是得获取那个cookie了呀。对吧,哎,我的货就OK了啊的货就OK了,好,咱们把这个写到哪呢。
02:08
获取页码。然后呢,哎有一个,哎有一个这个配有一个配好我们这个下边else if else好就写到了。写到这儿吧。写到解析模板前面了啊。来获取获取这个cookie。怎么获取cookie啊?嗯。怎么回去啊,昨天刚讲的啊。2.1个。对吧。传一个这个cookie的名字,哎,就能返回一个这个cookie,还有一个error,哎,所以呢啊,我们来括号里边呢,来一个user,来一个user,因为在请求图里边了嘛,哎在request这个请求报文的请求头里边,所以呢,我们用R来调调,直接调它这个方法啊,这里边传一个互体的名字,如果有呢,就能返回了,来cook。
03:09
第二个呢,是这个不要了。一逗号。好,那下面下面来判断了if。Cookie这个如果cookie等于这个闹的话,证明没有这个cookie是不是就没有没有登录啊,对吧?哎,没有登录啊,没有登录那就直接直接去这就行了啊,就是登录的时候我该在这块该怎么处理一下它啊,怎么处理一下它,如果这个库皮。不等于牛。好,那不等于六在这我是不是获取一下这个cookie的值。获取cookie的这个Y6,来这个CY6吧。
04:02
五六吧。等于。点一个。5Y6,好,那拿到这个cookie y6,我们都知道这个cookie y6是不是就是我们那个session的ID啊。对吧,也就是在的ID,所以呢,哎,我们得这个就查一下了。去这个数据库中,根据这个cookie y6。查询对应的这个session。Session。等于。d.get一个。Get一个session里头没有啊。Do。Their gate。
05:01
我们那个方法。还没有写吗?啊,写了一个添加,写了一个删除是吧?来啊,没有写来。获取session。把这个删除的先写了,哎,获取的没有写啊,Get一个session。YID。Session ID应该是啊,根据这个什么呢。Session的这个ID值。从数据库中查询。在线。好,来。Get session。By ID。这个ID不不写这个了啊,还得总得总得这么大写是吧,保存。来,那这里边穿什么呢?
06:02
传一个ID吧。死兵好,哎,返回一个。Model点一个session。一个加上啊。逗号。ER。好。嗯。然后同样来写四口语句了。Circle。Str等于。Select session ID。下一个是username。User ID。Wrong sessions。
07:00
Where?Session ID。等于问号。所以这些基本的资产改查的思口语句,哎,必须要会啊,必须要会session ID user name user_ID好,没问题啊,没问题。过不去了,又下下地,好哎,那下面啊下面呃,直接可以执行,那我们这个呢,呃,为了回顾一下我们之前说那个预变异啊,我们来调一下那个方法啊。于编译。UUS。点儿。DB点一个。Pair属于pair方法对吧,Circle s tr,哎,调一下这个方法啊,调下这个方法。然后呢,少了一个L。U1拍好,返回一个STMT,诶还有一个error,还有一个error,所以呢,啊来。这个叫一个什么呢?Insert in s TM。
08:03
T。逗号122。等于等于给它,然后哎,这块呢衣服。122如果不等于六。Return。Now new。逗号122好,就是这个预变异下面呢是直行。执行,嗯,就是用这个呃,In s t MT用它来调了啊,调它的这个方法了,所以这块啊,多一步多一步,如果你要直接执行这个DB里边呢,也有那个SQ的SCMT里边结构里边呢,也有那个方法,也有那个方案,之前我们都看过的啊,里边其实呢,传的参数不一样,诶,如果能直接调诶DB里边的这个ST呢,是传下口句直接把账务传进去,如果能调这个STMT,那个ST呢,里边直接传站位服务,所以这个啊,你不要忘记了,我们一个之前的。
09:03
好长时间没有写它了,来啊,执行。In,这个STMT点一个XQT里边呢,直接穿这个站位服好哎,第一个一共一个叫session。ID30 ID。啊。也不是调查了,是查询是吧,Query。肉哎,快肉查询啊,嗯,这个session ID session ID返回一个这个肉返回一个肉。好这行好,诶得到这个之之后呢,下面同样我们来这个扫描,那扫描之间呢,那我们这个需要有一个这个session。Model点一个session。
10:00
好。然后下面扫描。注释也给你写一下啊,就是创建30。然后下面呢扫描。扫描各这个数据库中的,那这个什么呢?字段值为这个session。这个字段。腹肌。好,哎,来。第一个。干。然后第一个and sessions,点一个session ID。第二个ands,点一个username,第三个。SE。一个user的一个ID好。
11:02
得到答,扫描完之后呢,下边呢,我们来返回return一个ses。你保存。好,诶,这是这个啊get session,那同样哎,我们写完之后呢,来测试一下啊,看有没有问题test。Delete,复制一个。Get get。GET3SES。等于get。啊,里边传一个ID,我们来把数据库里边这个很长的ID呢传进去,CTRLC。CTRLV,好。登大杀之后呢,来fmt点一个line。三的一个信息。是。
12:01
逗号ses保存。好,还有一个逗号下划线。好,来测试到。此时,火区。多了。主调。望取三。好。Get to。保存来右键。Good taste。好,哎,三神的信息。我的面4ID等于四,好没问题啊,没问题,可以查出来,可以查出来好哎,那这个呢,我们测试过了,没问题,来继续。回到我们的这个handler。在这块。
13:00
在在哪呢?对应在book里边呢,Book来在这啊cookie value6得到了这个呢,Cookie value6就是我们那个数据库里边那个session的ID,所以呢,下面啊,根据这个库value查询对应一个session。Do,点一个get session。啊,里边穿一下我这个cookie。等号。保存好,那得到这个session。好得到三身之后下边,哎,如果这个有这个三身。哎,如果有它是不是就证明。没有问题对吧,没有问题啊,那我们看啊这块返回的这个session。嗯,Session里边第一个是string string空第二个呢。第三个是。
14:01
三个int,因为我们这个之前通过这种方式啊,扫描完之后呢,你会发现最终返回的这个session呢,它是。里边都是默认值对吧,都是默认值,前面是空的,空的最后呢是一个,哎,这个int类型呢,它是一个零,所以呢,我们这块判断的时候,你还不能写sea等于六啊,还不能这样判断,所以呢,这块哎得写了if。Ses,比如我们就用一个点一个U的ID嘛。用U的ID来判断了啊,如果U的ID大于零。大于零是不是证明有对吧?哎查到了啊查到了,哎这个是数据库里边是有这个session的,哎证明什么呢?诶已经登录。好,诶已经登录,也就是我根据他查到了,哎查到了已经登录了,那好,那已经登录了,那我在这儿需要干一件什么事呢。因为你来看啊,最终呢,它要去这一个index.html,我们来把这个打开。
15:05
然后index这块呢,诶这块呢,这个这个div是登录注册和购物车,诶我们这个昨天说了,他需要在这两个之间进行切换。CTRLC把这个粘过去。放到我们的这个。Index这块,哎,来啊,我把它拿过来CTRLV。它是不是要根据你是否登录来在它两个之间来进行切换呢?对吧,那再进行切换的话,诶这个时候啊传过来的呢,哎,传过来的这个是一个配的是一个配底,那这时候怎么办呀。对吧,因为最终这一块啊,你来看我这一块呢,最终呢,你还得给我传过来一个配给我里边,因为有分页的一些信息,哎,必须得传过来一个page给,那这个时候呢,我这个已经登录之后呢,我得拿一个什么字段或者什么来判断你到底有没有登录,对吧?所以这块啊,这个配置必须得传过来,那你还得给我传过来一个标识,所以这个时候诶怎么办呢?啊,根据我们这块粘的这块,比如这块我这个如果你要登录的话是什么呢?他点一个直接显示的,他点一个u name。
16:15
哎,他点一个u name,我们刚刚是直接这个拿的是用户名的啊,得到的U的U的点一个u name,那现在这样啊,我们这个可以通过这种方式就很简单嘛,这种方式简单吗?怎么简单呢?你不是给我返回了一个page吗?我是不是可以在page里边给你再加内容呢?来啊,再找到我们这个配置。我们昨天的那个写的那个配的结构。在这个model里边。我们一直在往里面加内容是吧,这不有个mean和max吗,对吧。创建一个啥一个。那我这个不还得再创建一个吗?我现在不是有直接有配件吗。
17:00
对,直接在这里边,对,你在这加东西,其他的也不用改,其他代码也不用改,对吧,也不用改啊。也可以啊,也可以来啊,比如我写一个什么呢,比如写一个呃,不玩停的值is什么呢?Log in。诶是否登录,那我整一个布尔类型,诶可以吧,诶没问题啊没问题,然后呢,如果你要登录的话,比如我在配件里边再给你保存一下这个。我们这块不是要根据要显示U的name吗?哎,那你显示它,我就把这个呢给你。来啊,我们先把这个实现了啊,实现了之后呢,可以用其他的啊。刘德宁。军好,那现在啊,我在配置里面加了这两个,加了这两个之后,我们知道默认的话它是不是false。对吧,默认是false,好,那现在有了它之后在这啊证明呢,你三三.u的ID已经登录,已经登录之后呢,我在这干什么呢?我来修改,就我来设置配件里边那两个字段。
18:00
咱们呢,啊设置。设置什么呢?PA中的这个什么呢?Is either is login这个字段。和这个什么呢,Username。那这个字段值。好哎,我们刚刚不是已经设置过了吗?所以在这,哎上面呢,已经有page了,配点一个is哎。啊,没有出来是吧。开点一个is,诶log音,然后它等于一个出,等于一个出,诶那现在呢,诶已经是登录的,哎已经是登录的,然后再配置点一个诶username,比如等于哎我们上面的这个。啊,这里边没有user,诶我们session里边有session点一个,当然你放session也行啊,User nameme username,好,哎那现在啊,如果这大于零,这个时候证明你是登陆的状态,哎,才会进这个衣服啊,才会进这个衣服,哎来这个来设置,如果要是非登陆的状态,那肯定呢,配集里边是没有这两个值的,哎没有,那没有的话,在这一块我们判断的时候呢,诶来在这个index这块这块来写。
19:18
大括号,大括号if if什么。点。Is login,诶,如果它是true的话,证明你现在已经登录了,已经登录了,就是我们写了一个答案,Is login is log,好。已经登录,那现在呢,显示的就是欢迎谁谁,那这块呢,配置里边我已经给他用name了,所以直接就显示他就就没问题了啊就没问题了,然后这块else。就显示这个。And and,好,这是这一块啊,我们这样,呃,处理了一下,哎,在这个page里边呢,加了两个字段,一个是in login布类型,一个是这个user nameme,又把用户名放进去了啊,又把用户名放进去了,然后呢,这样我们在这个前端的,哎,就是在这个index里边呢,我们来写一个这个判断,写个判断好啊,把这个加上之后呢,我们来试一下,哎,看有没有问题。
20:17
来啊,我们重新ctrl c go build go。点。斜杠慢点,一个exe好。来简单啊。我们这个刷新一下,因为我们每次发请求呢,现在携带的这个cookie,携带cookie数据库里边呢,也有这个cookie,也有这个Y,也有这个session啊,也有这个session,好,现在呢,我们来试一下刷新。诶是不是显示的欢迎的in了对吧?诶这个时候啊,就是显示的这个欢迎din,哎欢迎din好啊就是这个,那这个我们这个,呃,换一个啊换一个这个用户现在呢,注销我们还没有实现。
21:07
有没有实现,嗯,这个把注销实现完之后,你一点注销呢,诶又变成那个登录注册那块,我们就可以这个用另一个进行登录了啊,用另一个进行登录了,这是这一块啊,这是我们这个登录成功之后,本来诶我们这个在那一步啊,能通过直接点u name的形式拿U的里边那个u name,但是呢,诶我们说整个这个绘画里边,你还得这个做这个判断啊,做这个判断当然了啊,如果其他页面里边有人在点的话,点其他页面里边也需要得到它的话,你也需要在这个页面里边把这两个div给整进去,你也得判断一下,如果是登录状态显示的是这个div,如果是没有登录的状态,显的是下边这个div,下边这个div,那我们这个购物车里边啊,像我们点这个购物车的时候,现在呢,这个呢,还没有判断,还没有判断这个购物车里边呢,我们这个,呃。
22:03
写这个购物车的时候啊,在这边你还得判断有没有登录,所以呢啊,基于这块呢,其实后后期呢,我们可以把这个是否登录这块,就把这一段代码给它抽取出来,跟我们那个DB或者是我们那个生成UID那个工具类一样,我们放到一个文件里边,然后呢,通过调那个文件里边那个函数来判断是否登录,所以啊可以把这个代码给这个抽取出来啊,等我们把那个写完之后呢,我们再把这个给抽取出来,抽取来来判断你有没有登录,每个里边都要用它,都要用它。这是我们这个处理的一种方式啊,一种方式,诶怎么来这个判断你有没有登录,诶怎么来这个切换这两个div,我们在配置里边加了两个字段,一个是is log in,就是整个一个不玩的英文值,如果你要没有登录的话,诶你像我们这个不看的了这个逻辑啊,我们再来过一遍啊,再来过一遍,如果你是没有登录的状态,在这个get book,哎,Book by price这块,那我要获取这个cookie的时候肯定是得不到的,对吧,这个肯定是没有的啊,没有登录的话,这个库位你比如刚来,呃,刚来这个你把浏览器关掉就可以了啊,刚来之后呢,你来到这时候一点一点进到这了,那这个义的这个库位肯定是没有携带啊,没有携带那个库就不等于闹,哎,不等于闹,所以呢,这个肯定就不执行了,那如果你这个登录成功之后,你再回首页。
23:24
哎,在回首页又调这个get pageb by price了,那这个时候呢,呃,因为我们这个登录成功中后呢,设置了一个cookie,诶而且呢,Cookie跟数据库里边有一个session对应,那这个时候呢,这个U的肯定是有值的,那肯定就那这个cookie肯定是有U的是有的啊这个cookie u的肯定是有的,然后得到cookie就不是nu了,那不是nu这一块,我们这个来获取这个它的一个Y有值,去找数据库里面那个session,哎,找到session之后,呃,这块啊,如果它这个ID大于零,证明数据库里边有这个session啊,有这个session。那有session之后,我们这个时呢,为什么写它啊,因为呢,将来这个我点注销的时候呢,呃,点注销时候要把数据库里边那个session给它删掉,那删掉之后你浏览器如果不关,那个cookie还是带着呢,所以这块啊,为什么要写这个,那你这个cookie不等于呢,不是就。
24:13
就不是说它就一直是登录的状态了,所以我们这块啊库B不等于呢,我得查一下有没有session,如果这个哎这块不大于零,证明这个没有这个session了,那现当也相当于也是没有登录的,你已经注销过了,那个我服务器里边,哎数据库里面的session已经给你删过了,哎,所以啊就在这块,如果它大于零证明有session,而且呢,也有那个cookie,两个都有,哎两个都有,所以在这里边呢,我来设置那个配置里边,我们刚刚设置的两个字段,把它改为true,哎改为true,然后呢,把这个你30里边那个用户名,就已经之前已经登录的放在那个用户名了,再给它设置进来,设置进来在这个页面上啊,我在这块一看啊,你就登录了,就能显示了啊就能显示了,就是我们这一块啊,登录成功之后呢,有再返回首页的话,诶能显示。登录的状态,或者说诶,这个没有登录的一个状态啊这个。
我来说两句