00:00
下面啊,我们来写一个函数,就是判断一下你有没有登录,比如让它返回一个不二零的值,这样呢也是可以的啊啊找到我们这个之前写的那个。Book这一块我们看啊,写的这一堆代码啊,我们获取cookie,获取cookie,看看cookie是不是等于now,然后下边呢,再在这个从里边获取这个session啊获取session好,那这一堆代码呢。我们这个,嗯,可以,比如在某一个地方呢,创建一个文件,然后里边呢,写一个这个函数啊来我们创建一个在U里边吧,我们来新建一个文件,起个名字叫什么呢?叫一个什么check。检测一个log in吧,这样一个勾无所谓啊,起什么都行啊,你这个你你你看着你知道它什么意思,你这个起一个你知道什么意思就可以。来看看这。这个。那里边呢,我们需要写一个这个函数有fun,就叫一个嗯。
01:04
Is login。好,就这样了啊,是否这个呃登录了,哎是否登录了那里边呢,哎,我们这个既然要在哈里边来来这个呃来这个呃调这个调这个函数啊,所以呢,这里边这里边我需要传啥呀啊。嗯。这里边儿需要传什么参数啊。Cookie。里边穿什么?那你得看啊,我们这个不handle的这块,我写的这里边是不是获取cookie,那获取cookie这堆代码我是不是不想写到这了。对吧,那你这R。从哪来呀?如果只传一个cookie。这块我我这个是不是直接也是跟这个一样啊。
02:04
你能听懂我说啥了吗?你看啊,我这样这个或者是。哎,我这个传一个给我写一个函数,传一个这个。哪呢,你们的代码呢,所以你看这一块啊,看这块我用R呢,获取这个cookie,呃获取这个cookie,然后在这一块呢,这个呃如果cookie不等于now,哎,我们这个呃得了一下这个cookie的value,然后呢,最后呢,这块哎又这个叫Du,所以这里这里边这个代码我想把它给抽取出来,放到某一个地方,哎放到某个地方啊。所以呢,我这个里边传的这个参数,你不得有这个R吗。对吧,得吧。需不要有R啊,需要有R吧,所以你得看这个,看这一堆代码啊,看这堆代码,你这个哎,我要通通过这个R还得拿cookie呢,对吧,还得拿cookie呢啊拿cookie,那拿了cookie之后呢,我们还想的这个方法呢,再返回一个这个布尔型的值,所以啊,我们大家写一下啊,看看这个可不可以啊。
03:15
来我们R那个R是一个什么呀。HTTP点一个。Request对吧,哎,Request,那另外呢,我还需要传一个啥呀。啊,对,指针指针。哎,这个上了指能行啊,哎指针,哎指针好,除了这个R之外,我还需要一个啥。这个。看啊,我这个是不是要根据那个K。你在哪呢?嗯,在这。我是不是这个r.cookie你是不是得把那个cookie的。名字给我传过来呀。
04:01
用不用啊。不是说我只我只传一个request啊,只传一个request就这样了啊。来啊来来来来,在哪呢?在这啊再传一个它,然后呢,我们我们比如这个返回一个波尔类型的一个值,好啊就这样了,好写一个它,然后在这里边我们来把这个注释也写一下啊,一直log in来判断用户是否已经登录。好,那用户是否已经给他登录,我们把这个K写死也行啊,K写死。好,那这一块呢,我在这里边是不是要获取物品。对吧,诶根据这个cookie的名字。根据cookie的name获取这个cookie。我去不好,哎,来2.1个交个啥。Cookie吧,哎,Cookie里边是不是要传一个传一个K,那你说这个K,我是从这个调这个方法传过来好呢,还是在这谢丝好啊。
05:08
哎,写四好,写4USER好,哎,然后呢,Cookie得到一个cookie,你看这个返回值有没有error啊。有没有挨啊?等于保存。来看一下。Cookie好啊,没问题了,那得到cookie之后,下面是不是要判断了if。Cookie。哎,如果这个cookie等等于。等于六,哎,如果它是这个空的话,证明。是不是没有登录对吧,也没有登录,那这块return可不可以。诶可以吧,For没有登录吗?哎,没有登录好,下边不用写else了是吧?哎,不用写else了,好,那下面这个如果你登录的话,拿到cookie了,我是不是得获取cookie的万六。
06:05
对吧,这个逻辑啊,现在我们这个昨天说那个三身时候,只要你把那个过程,比如那个原理,你把它捋清楚了话,下边下一步该获取获取什么啊,你一定这个很清楚了,诶我们再说一下那个session啊,我们现在呢,想把用户的信息保存到session里边。我们现在保存的用户信息呢,就保存了一个用户名和一个用户的ID,对吧?诶在session里边,所以啊,我们创建了一个结构叫session里面呢,有一个session的ID,那个ID是这个一个唯一的标识嘛,全球唯一的就是那个ID通过UUID生成的,然后我里边放了一个用用户名一个U的ID,那你将来浏览器发起就说要想找到它得有一个cookie,诶所以呢,你得创建cookie,也就意味着以后发起以后有一个cookie对应着数据库里面那个session,得通过这个cookie早session,所以呢,你得先获取cookie。那如果你要第一次来还没有cookie,那这个IE肯定就是空的,对吧,是new,所以呢用return for就证明它没有登录嘛,所以这块我们再再写一下啊,如果返回一个呃返回一个false,哎,什么呢?诶没有登录你就可以写嘛,哎没有这个登录,那如果返回一个处,哎这个是哎已经登录,所以你可以在这注释上面,诶写清,哎写清对吗?诶你这个写清之后,你就知道这个逻辑谁对应的谁,谁对应的谁,你这个就明白了,或币它如果它等于哎就说明没有还没有cookie,那我们就成功之后不是再创建的cookie吗?就是呢,还没有cookie,所以呢,我这块啊force那下边的就是有cookie了,那有cookie,我要根据cookie呢去找session。
07:34
有可能三我也干掉了,不过现在已经这个情况已经没有了,我一注销之后呢,Cookie也没了是吧?来啊获取这个什么呢?哎,获取这个cookie的这个Y6,哎,刚刚是获取cookie的这个名,名字name幕,哎获取cookie的这个Y6。回去的Y6,好,来cookie y6。等于cookie点一个。Y6,好,那得到这个Y之后下边。
08:01
我是不是根据这个value去找这个对应的三。对吧,那最后写了一遍啊,你一定得把这个给它捋顺了,根据这个cookie。那这个Y6直接写它吧,根据QQY6。什么呢?哎,去数据库中查找,哎,与之对应的查询与知对应的。这个三。SESSL。好,哎,三。因为我们那个session,嗯,还有个error是吧。逗号逗号。下划线。就等于等于我们这个什么do,点一个get一个session。括号里边传一个cookie y6。Cookie cookie。Cookie value,好,哎,就这样啊,哎得到这个,哎得到这个session,好,那得到这个三。
09:04
我这块报错了。他说,我又干啊。Cookie。这包的拖啥啊?又循环了。Youus。DAO。坏了。对,里边。导Du了,Du里面有导u to了对吧。不能这样。嗯嗯。这里边有导U了,然后YouTube里边又导Du了,所以呢,它这个。
10:06
诶,我那个。You check logging。那这样还不行吗,是吧?那我也得用它呀。再写一个包,专门给三准备一个包是吧?对啊,这样不行呢,还。抽出来,现在你这个用用丢了,用这个里边的。用里边这个方法呢。用里边这个函数了,然后我这里边也用这个U了,所以呢,现在啊,你这个。
11:00
倒的话,他就报这个。他抱着个问题说你这个你看啊,这块说什么呢,这是啥意思啊。循环是吧,说那个导的这个循环了,你这个它里边哎U里边又DA了你这个。第里边也有游艇了,对吧。Das das。对,那就不写这了。对不写U我啊,不单独整个工具了啊。把这个删了啊。啊,先留着先降完之后,然后再删是吧,然后把这个粘过来吧,CTRLC。CTRLC,我们在这个session里边。
12:00
哎,等一下我们放这啊,本来还想这个直接都跟这个什么呢DB点。Go啊,还有YouTube.go都整一个工具,现在呢,哎,不能放那了啊,不能放那了好,哎,然后呢,我们把这个粘过来之后呢,把这个再删掉啊,把这个删掉,我们的check login go干掉。And shift。把它永久删除。其实这个哎,说到永久删除啊,有时候我这个手就是贱,这个有些东西呢,我本来想这个删除,结果呢,按住shift的之后,永久删除之后呢,我又后悔了,所以这个时候态就找不回来了,那正常情况下你右键删除它应该放回复站是吧,但是我这个我桌面上有没有回收呢?我我桌面上就就喜欢放一个我的电脑好像回收站都不想放,哎,这个现在还有啊,之前就是放一个我的电脑回收站也也懒得放,所以呢,我这个就喜欢安卓shift,我上完之后呢,再后悔怎么办呢?就得打开打开360,然后呢,这样回复一下是吧。
13:01
好了啊,把这个整过来,整过来之后呢,诶,我们这里边,嗯,这个就直接可以调这个了啊。好哎来,哎在这呢,哎,我这个获取cookie,获取cookie呢,哎这个如果他是now的话,Return就证明没有登录,然后下边呢,我这个这个根据cookie y得到sin得到3IN之后呢,下边哎就开始这个。If if这个session,我们这个得到的这个session啊,我们往上get session来看一下,Get session呢这块我这个有一个session,如果这个session里面那个U的ID如果是大于零的话,是不是已经证明登录了,对吧。哎,所以啊,If这个session点一个U的ID,如果是大于零的话,哎,这时候是不是已经登录了,对吧,已经登录诶所以呢,这块我来return return一个true。
14:02
没那个处,这能看懂吗。如果它,那么这块啊,如果这个cookie等于no。就证明没有cookie,所以呢,现在是没有登录啊,Return force个force那这个。下边的下边这应该写个else是吗?什么?不等。啊对,写不等于no啊,如果不等于now就证明已经登录了,对吧?哎,已经登录了,最后呢,写一个return for啊来把这个把它移进去。把这个移出来啊,移出来,然后呢,把这一堆移进去。哎,保存哎这样这样啊,哎再来说一下,如果它不等于闹证明已经,哎有可能登陆了,不是已经登陆了。
15:05
对吧,哎,只是cookie不等于no,哎,Cookie不等于no,哎这个下面呢,我还得根据cookie的值去找有没有session,有了session是不是才证明已经登录了,诶那下边这块如果这个他已经渗到了,所以呢,直接就return这块就根根本就肯定肯定没有登录了啊没有这个登录没有登录好,就是写了一个他啊写了一个他好,那现在有了这个之后呢,我们把之前写那个代码改一下看看啊有没有问题。诶,这个有可能有问题啊,我们把这个呢叫is log in这个方法,记住找到我们的U,我们刚刚写的U堆代码是book handle了,对吧,好在这啊,获取孤僻这块呢,我把这个给删掉了。上面这个都删掉了啊,干什么呢。哎,不是获取故意了,诶调用。调用这个is login。
16:03
函数。判断是否已经登陆,哎,来。DAO。点一个is login。好,R。哎,后边还传啥吗?就传一个参数啊,我写那种。是吧,哎,然后呢,返回一个这个不尔零的值,就叫一个flag。等于它好来啊,我们这个时候呢,来看一下我们刚刚写的,如果是false的话是。没有登录是吧,如果是true的话是已经登录,所以呢,那这块就不用这样写了。哎,如果它是不是直接if付它呀,对吧,哎应付它,哎这个呢,就直接,哎那这块咋了。
17:07
我是不是少啥了?多了一个大括号,多了一个大括号啊,我刚刚把那个删了啊,把它删了,然后呢,这里边这个session。这个内幕。对,那是个name,怎么办啊?所以啊,这个我们要只返回一个不二零的值。因为就这个首页处理特殊的一点,因为首页要查那个配给其他地方,我们写了,这个时候呢,你像这个其他地方就不用了啊,像这个我要点其他的页面,诶这个去购物车啊,去哪了,不需要带所有的图书,那个时候处理简单,去访问一个波尔类型的,就这块我们这个整了一个,呃,30点个用name,还得有这个用户名呢,还得有用户名呢啊这里边没有那我这块。
18:06
简单把这个。你再改一下啊。除了返回这个,因为我们能返回。多个嘛,是吧,再换一个。返回一个session。我返回一个string,返回一个用户名也可以啊,整一个这个string。来啊,哎,括号这回得得加括号了,哎得加括号了,当然你返回session也行啊,哎,我们这块呢,哎,返回一个string,返回一个string这块,呃,这个return一个。已经登录,呃,返回一个处。前面是处,那后边呢,这块就是这个三身。点一个user。内幕有的内幕好,那如果没有登录。好,哎,就这样了啊,哎,就是这个有两个返回值了,有两个返回值我们这块就能处理了,有second。
19:11
逗号。User。Name。好。那这块呢,就是等于一个user name保存,哎保存好就是这块啊,我们这个调用,呃,把这个刚刚我们写的获取cookie判断有没有登录,包括获取session呢,给它都放到这个,呃,Is login这个函数里边了啊这块呢,哎,我们这个。把它设置好之后啊,把这个函数写好之后呢,后期我们再判断就就简单了啊,就是这块这个登录去首页这块有点复杂啊,有点复杂,好那这个写完之后啊,我们来再来看其他地方还有没有一个。现在我们目前都写了这一个地方嘛。对吧,其他地方好像没有了啊,没有了就给它,等我们这个写那个购物车的时候,诶,还还需要来判断一下,还需要来判断一下,所以呢,到时候就可以直接调这个函数了啊,直接调这函数了,好这个写完之后我们来试一下啊,看有没有问题。
20:15
来,Ctrl c go build,慢点一个勾。好。点慢点一个exe。好,来试一下。来啊们,嗯,去首页。好,我们来点一下登录。来一个in,来一个一二三四五六点登录。好,登录成功了,诶现在呢,我要转到主页,诶这个。没啥是吧,主要是去主页的时候看会不会显示。走也没问题对吧,也没问题啊,也能显示也能显示,哎,这是这个啊,我们把那个给串取出来了,哎,下面呢,我们来说那个问题,哎,刚刚有学生说了,你登录成功之后。
21:02
登录成功之后呢,再刷新登录这个成功页面的时候,诶,它会多,哎,它会多内容啊,我们再来注销一下。好,注销过了,注销过呢,现在我们来看数据库啊,刷新现在是没有任何内容的,诶来再来重新登录一次。换一个额的密二。来一个123456,登录好,登录成功了,来我们的数据库刷新有30了,对吧,好,现在我再刷新一次。是不是告诉你是否重复提交表单,其实正常的啊,这个东西呢。你现在又现在又重新的提交了一次,因为他这个呃,成功之后呢,是转发过去的啊,转发到我们这个成功页面的,诶所以呢,这块你又现在又重新提交表单了,哎,那就是你如果要点继续诶来。刷新是不是又进来一个,那这不行啊。两个三胜啊。那就相当于你这个什么呢,两个用户同时在线了,就给你这个,呃,上网说啊,这个肯定是不允许的,那这块我怎么处理一下。
22:06
是不是在登录这块,你得判断一下有没有登录,如果登录是不是就不让他。再发请求了,对吧,再发请求了,所以呢,来啊,我们试一下,找到我们那个。点登录去的是U的handler,所以呢在login这块也也是刚刚啊那个学生说这块你是不是得做个判断呢?那现在看来确实是,所以呢,你来调这个捞根这个方法的时候,在这里是不是得判断一下。对吧,判断。是否已经登录好,那这个怎么判断呢。Flag。逗号。逗号下划线。然后呢?冒号等号,我刚刚写的那个叫啥,点一个is。
23:06
不用逗号。是不是掉下这个我刚刚写的它就行了。对吧,哎,如果返回一个来看啊,如果返回一个处。是不是已经登录了,所以这块来if if什么呢。怎么写括号了,If flag。这个时候是不是已经登录过了,哎,那那干啥呢。那我干啥?Return for。那我直接去首页不就得了吗?可不可以啊?行不行?可以吧,或者你这去首页啊,你这块处理一下啊,当然了,这个不是唯一的处理方式啊,你可以这个,呃,你给他说设置个消息也行,你说你个该死的,你已经登录过了,怎么又来一次,哎,对吧,总总之是什么呢?不要让他再往下走了,不要让他这个提交这个呃请求了啊,不要让他提交这个请求了,哎就是这个意思啊,因为他要他要来这的话,哎来这之后呢,也不能让他再在这个,哎走下边这一堆了啊,不能让他再走下边这一堆了,诶好像这。
24:22
创建呃就就这块啊,这个创建它,然后呢,往里边这个呃最最终呢,保存这个库筛选,你不能让它,呃走下边这一堆,就总之就这个意思啊,那我们这块如果他诶已经登录干什么呢?我们就直接诶去这吧,去首页吧,直接调一下他了啊直接去首页了,去首页他一看哦我已经登录过了,诶他就明白了,对吧,那就明白了,那其他的这块。那下边的就不能执行了吧。那一。啊,把这个移进去啊,移进去。这个else,这这就属于else里边的吗。
25:03
不能他走了呀。你让他走,你让他走这块,他是不是又往又往这个三审里边又又又又加三神了呀,对吧,你就不能让他走了啊,你直接直接调完这个就上就结束了,就结束了,你不能再让他执行下边的代码了,再执行那就又坏事了,我这个数据库里边是不是又多一个session对吧?诶又多一个,好现在这样啊,我们这个,嗯,来这个注销一个注销一个呢,还有一个诶。哎,这个超链接我没改是吧,成功页面,成功页面注销,好这个没改,哎,Logout。那告诉他保存好。哎,那我这个也不能刷新呢,是吧,哎返回返回去主页,哎去主页好,现在呢,哎可以注销了,注销一个,诶来刷新少了一个,还有一个干掉。直接干掉啊,直接干掉了,只能这样干掉了,哎来现在呢,再来一次啊,我们看一下我们刚刚写的那个,诶好像还没有。
26:02
CTRLZ。狗。慢点,够。好,来点儿斜杠。慢点,一个exe。所以啊,这个就是你要这跟我们平时这个什么语言都是一样啊,你要用这个它最基础的原创的东西呢,你写一个项目呢,非常的费劲,非常的费劲,这所以呢,你把这个写了多之后的话,等后边用框架的候发现,哎呀用框架太爽了,就是就是这个程序员的春天是吧?哎,程序员的春天终于到来了啊,终于到来了,有了框架之后呢,好多繁琐的东西呢,都不用我们自己写了,也不用我们考虑了啊。来啊,现在呢,再来一次,嗯,再来一次,这是这个我们先进首页啊,先去首页,这个直接注销了,这是慢去慢来试一下看好不好使啊。登录来一个密。呃,得me。四好。哎,登录好,来看一下,来看一下来看一下。
27:02
嗯,数据库。刷新好有一个赛事了,那我们现在来刷新这个页面啊刷新嗯,继续。你是不是过来了?哎,对吧,哎过来了,哎过来之后,然后呢,我们看数据库有没有多啊,首先哎是不是没有多对吧?哎没有多啊没有多,这是这个啊,这个你写完之后呢,你再测一下。还有没有其他的bug对吧?诶有呢,我们还得调啊,还得调,这是我们这个登录跟注销啊,登录跟住销,那么下午我们就该说这个购物车,这个购物车。诶这个说的话啊,因为这个呢更费劲,那里边还要创建结构,然后创建这个表,创建表,所以呢,下午啊,我们来说这个购物车,说完购物车之后呢,呃,今天晚上没有晚自习,所以呢,明天你们周日都干啥学习吗?敲代码是你觉敲代码是吧,所以啊,这个你尽量啊时间时间周日呃,不要总是睡觉,你这个嗯把这个代码呢,你自己写一下,自己写一下好了啊,那剩下的时间呢,我把这个呢,呃发给你啊,或者你在下边呢,你这个用自己的方式也好,或者用我登的方式也好啊把我们这个出现的一个问题呢,哎,你把这个解决一下。
我来说两句