00:00
我们继续完善注册功能,那这个reject的方法我们已经写好了,来到ctrler,由于这一块呢,我们会来检查我们用户名和手机号的微信,所以这会抛两个异常,把这两个异常呢分别拿过来,我们给他看尺掉,这是我们的第一个异常,还有我们的另外一个异常,来看尺一下。那得到不同的异常以后呢,我们就需要返回不同的结果,我们把第二个异常好,我们来来到它的service啊,第二个异常复制过来,那第二个异常我们拿到一好,我们只要出现异常,我们就给它返回失败,并且呢说明失败原因r.fair我们这儿呢有一个error方法好code呢,那我们就之前搞过一个咱们这个异常的常量,我们在common里边来找一下。在这里边我们的常量里边异常,异常的常量里边有我们的这个校验信息,将来这是我们通用模块商品模块,那这个一四我们来一五,一五呢,就属于我们这个用户用户模块,那么这个用户模块呢,我们来接来加上一些异常。
01:08
啊。我们先来加第一个异常。是我们的用户已经存在,我们就要user exception user exist,这是我们的150001,好,这是用户存在异常,还有我们的第二个异常是我们的手机号存在异常,150002啊,我们把这个呢拿过来。我们就叫份exist,这是150002,这个是手机号。手机号存在异常,然后呢,我们只要得到这异常,我们就应该返回的错误状态码,就是我们的base code,我们这个错误状态码里边有我们的。第一个份是我们手机号存在异常,把它的这个扣的拿过来,包括它的错误消息,我们也要拿过来,点一个你叫份手机号存在的错误消息。
02:09
好,这是我们的第一个,第二个我们失败了,也要同样来返回我们的R,点一个error就行了。这个呢是杯子code点一个,我们是用户名,哎,我们这个用户名的get code,我们先来第一个叫get code,第二个base子code点一个,我们这是用户名的消息get message啊。把这两个异常呢,我们来只要出现异常,我们就给它返回这个,那么远程的用户注册服务,我们这个功能就写好了,但是我们最终我们在注册页面,我们发送这个注册,我们是发给author服务的,所以来到author,我们来看我们的author这一块,我们的controller。Login controller里边,那我们有一个注册,当注册接到我们的请求以后,我们应该发送给远程这一块全部验证通过,我们就在这儿发送给远程服务来进行注册,好我们就应该有一个远程服务,这是第三方的,我们再来创建一个新的远程服务来调用我们用户模块的,那么就叫member。
03:15
份service。好,这个呢,主要是来调用我们用户模块的,来标上分client,它是来调用我们用户服务,会员服务,好然后呢,接下来我们的第一个功能就直接将它的controller里边的内容我来复制过来,CTRLC,这是一个我们的注册功能。但注册功能里边呢,要传的这个VO,这个VO呢,在我们这里边儿有一个user register view是跟它对应的,所以呢,User register view里边的属性都是一模一样的,所以我们把它复制过来,然后呢,还有我们的整个全部的访问路径一定要拿过来反问路径要加上member member,好,我来复制过来。还是在我们的这个service里边,我们login controller里边,我们就会调用第三方的它,好我们来加上我们的请求前缀,然后接下来我们在这里边想要调用我们会员的注册,我们就在这login control里边,好,我们先来将我们这个会员服务我们来导入过来,我们叫member phone service enter,一个owa,那真正的注册功能就应该来到login里边来找一下我们真正的注册,在这验证码校验通过以后,我们来进行注册,否则呢,其他都是错误逻辑。好那们在这呢,有一个方法叫register register里边呢,要传一个user VO,而这个VO呢,我们在页面已经收集过来了,就是它,所以我们把它往里边一传,返回一个R对象,然后这个对象呢,我们要判断是成功还是失败,如果我们这个R对象点一个get code等等零,那所有是零状态的,那都是成功那。
04:57
这一块我们先来标注这是成功,那所有是一状态的也不一定是一状态,其他状态呢都是失败,包括出现异常也是失败,所以我们在这儿先else一下,而且呢,由于我们这一块呢,远程调用可能会出现异常,所以呢只要是异常也都是失败,那么在这异常呢,我们就来返回return。
05:21
失败了呢,我们还是返回注册页好,我们使用这个CTRLC来复制过来,然后呢,成功我们就返回登录页,我们用这个CTRLC好那。这是我们这个成功,那失败呢,那就有错误消息,那错误消息到底是哪个,我们失败了,就给这儿放一下,因为我们是重定向。的方式,我们想要放错误消息呢,可以使用我们的这个redirect attributes啊点一个按flash attribute,添加一个我们这个快速的这个错误消息,错误消息呢,我们都叫as,然后它的消息的值,那如果我们这个常规的错误消息,我们就给里边放一个map。
06:04
好,我们把这个map拿过来,我们就用一个最简单的map先拿过来,因为这个map呢,不封装我们字段的错误,我们就叫拗一个哈希map,这里边呢,只有我们一个非常普通的错误,那我们这个普通的错误我就先放上来,给它里边呢放一个as.put诶我们就叫message,然后呢,它错误消息的内容,那就拿出我们这个远程的错误内容答案,所有的错误我们就放在下边。那我们远程的错误都是在R里边封装的,所以我们直接使用r.get message就行了,当然这个message呢是在data里边封装着,那就直接get一个data,这个data呢是一个string,那就new一个type reference整一个string就行了。好,这是我们返回的这个数据,那最终在我们的这个注册页,我们这个注册页呢,等真正拿到这个数据,我们来可以看一下,在我们的这个注册页,打开我们注册页,我们可以给注册页的最开始,我们就放上这个错误消息,这都是验证码的,还有密码用户名,好我们可以给用户名的最上边,我们可以来放一个错误消息,如果出错了以后,那么也整一个这个div,那么放在最上边。
07:25
这个div呢,我们就是从errorrows里边,如果errorrows不失空,而且它包含一个叫message的,然后我们就从errorrows里边取出我们的message信息就行了,CTRLF9我们这个页面呢,重新来编译一下,并且我们修改了代码,我们也可以重新来编译一下,来看一下这个logo controller哪里呢,有一个错误在下边这。那这个这儿呢,他说没有这个程序能到达这一块,那我们将所有的都处理完了,那就不会走到这儿,好CTRLF9来重新让它编译一下。现在我们来测试一下我们整个效果。
08:02
主要我们的这个OSO要进行真正的注册功能,我们会来进行远程调用,所以我们来看一下我们开启了远程调用功能,而且呢,我们也声明了我们是调用这个member服务的,包括呢,我们的这些服务以及member服务我们也都加入了我们这个注册中心,我们来确定一下member服务有没有启动好,来重新来启动member服务,来到member服务里边,先保证我们的member服务都加入到了我们的注册中心,确认一下它的配置。在呃开压麦尔中,好在这配置了注册中心的地址,以及我们这个服务的名字,好没问题,我们现在来做一个整体测试,把这清空掉,我们先来刷新这是我们的注册页,好然后呢们来填一些我们的用户名,给我们来写一个雷凤瑶,然后呢,我们的密码123456,这一块的密码也是123456,然后我们来写一个手机号,手机号呢一定要发送验证码,我点一个发送验证码。
09:01
来收取一下我们发送过来的验证码,我们先看一下控制台验证码有没有发过来,验证码呢,都在第三方服务里边,我们发现这个验证码呢,我们会报了一个错误,说验证码必须是数字或者字母。那所以我们这个发验证码的这一块功能有问题,那我们来到第三方服务里边来再来调整一下发送验证码的功能。在ctrler里边,好,我们验证码的发送,验证码呢,这是我们的手机号,这是我们要发送的验证码,来点过来,这块验证码的功能我们已经写过来了,我们要发送的验证码和手机号都在这儿,那只要能报这个错,那说明我们这个验证码确实不对,那么在这呢,以debug的方式来看一下。好,我们将第三方服务来以debug的方式,我们现在在页面来重新调试发送验证码,我们现来清空控制台,把这个third party好控制台清空,来点击发送验证码,好,我们来到第三方服务验证码,我先来看一下手机号,手机号是对的,我们加号发送的验证码,这块验证码呢,太长了,因为我们将要发送的验证码,我们后来拼了一个我们的当前时间戳,但我们发验证码的时候是不带这个时间戳的,所以我们就应该来到我们的。
10:19
调用它的这个服务,我们在author服务里边,我们要进行验证码的发送,好,我们来到它的login controller来看一下,我们要进行发送验证码,而验证码的这个发送我们来找一下调用我们的第三方来发送验证码的功能,我们是在上边来看一下,在这呢是来发送验证码手机号给我们,然后呢,我们在验证码呢,是来调用这个进行发送,但我们真正的验证码不是我们拼后的这个串,我们来看一下,这个串呢,已经是拼接过了。所以我们真正的验证码呢,应该是截取的前边的这一块东西,我们将这一块呢,我们先来提取过来,这是我们的验证码,而这是我们要给rabbit里边存的东西,好,我们要发送的是这个,我们真正的这个验证码呢,加上我们的时间戳在后边,我们是后来要做一个验证的,然我们发的验证码呢,是我们上面的这个给red里边存的是subst string什么的,这个来找一下就是它。
11:21
然后呢?我们在这要进行注册的时候,我们肯定要验证验证码,那验证验证码呢,先从red里边取到我们这个验证码,然后截串跟页面的呢,再来进行对比,这个code的呢,是页面提交过来的,好来写好以后CTRLF9来重启一下,好我们现在再来做测试,那之前的这个呢,我们先来放行,我们给这一块呢,都先放行,然后我们来重新来做一个测试,我们还是页面发送验证码的功能好,我们先将第三方的这一块我们来清空掉,来进行验证码发送,我点一个发送验证码。好,我们先来看一下我们的效果,Debug呢,就先走到这儿,我们要发的验证码,我们先来确认对不对,这个code的好验证码没问题,来进行发送,走来放行,我们等待呢,接收验证码,好验证码呢,我现在过来了,是635D0,那我就写个635。
12:16
D0,那当我来点击立即注册,那就会提交给我们的author服务,那author服务呢,在这就会来接收请求,好,我在这打一个断点,来看一下我们所有的请求对不对,将author呢也以debug模式启动起来,那么这个验证码呢,现在保存好,我们包括去red也可以来确认一下。好,我们来确认一下我们的这个手机号对应的验证码是不是635D0。我们来连接上red,我们来看一下,这里边呢存了一个验证码,好这个验证码呢是635D0,好等待验证,而且它的这个过期时间我们还有500多秒,然后我们来做一个测试,好在奥服务也启动起来了,来点立即注册,好现在呢断点来到这,我们来看我们收集到的VIVO数据,VIVO数据呢,雷锋阳123456,包括手机号验证码好都是提交正确的,那么接下来就来往下走,这一块呢,都是正确的来扣的拿过来我们来去red里面进行对比,我们先来去red里面查数据,好我们发现呢,我们查到的这个数据S前缀是635D0,但是呢,我们先要拿到这个前缀来进行截串,截创的前边这个扣的是635D0,然后呢,我们要进行对比,这个对比呢,通过了,通过以后呢,我们会将验证码立马删掉,所以我们在这儿来看一下,我们这个验证码呢,就已经没有了,那如果下一次请求还带着相同的验证码,肯定呢,就。
13:46
会有问题,所以我们这一块呢,已经没有验证码了,然后我们接下来继续往下走,验证码对比成功了,然后我们来调用远程的注册功能走,当发现呢,这一块出现了这个错误,这个错误的异常,我们也可以看到这。
14:01
这个叫read timeout相当于读取超时,因为这个远程服务第一次调用经常会读取超时,所以我们来放行,放行呢,我们至此结束,它这呢说404NOT found,这是时间太长了,我来重新来一下,好,我们来重新访问一个注册页,第一次调用通过以后,我们来重新来进行测试,雷凤阳,好,然后呢,我们这个密码123456 123456。手机号我们来填一个,我们再来发一个验证码,我们以debug方式,我们先来看他要发的验证码,好这个验证码呢,是6D593,我们直接来放行,好,放行以后呢,我们就肯定收到了验证码,我来填写一下验证码,现在是6D5936D。593好,然后我来点立即注册,好还是debug来到我们的CTR,现在这个VI收到数据,用户名,密码,包括手机号,验证码都是对的,好我们就直接来走下一步,我们拿到验证码,先来从rabbit里边拿到数据,啊,一切正常,然后接下来走拿到数据,数据呢我们拿到都对了,我们去red里边把验证码删了,防止它下一次还带着相同验证码,好接下来进行远程调用,现在这个远程调用呢就成功了,我们用这个R对象,我们来看这个R的返回对象,它里边呢是手机号已经存在。
15:25
说明我们之前虽然远程调失败了,但是给数据库已经数据插入进去了,来刷新一下走,诶我发现呢,这个数据库之前的数据确实已经插入进去了,所以呢,他报手机号已经存在,那已经存在呢,它就不等于零,不等于零,那接下来就来到我们的错误消息封装好我们,然后呢,将它的错误消息封装到这个error map里边,它的这个message,然后呢,它的真正内容我们需要获取到它里边的data数据。这个数据呢,就是真正内容,但是这个数据我们来看一下,这个数据呢,好像我们之前没有获取到,我们来到这个as里边,As的这个map里边,现在呢,Put了一个message,但是内容为空,那这一块获取问题,我们一会儿再看吧,然后呢,它重新来到我们的注册页,好来放行,那接下来呢,就重新跳转到注册页,所以我们这次注册呢,就是失败的,那要想做一个真正的成功,我们就必须把我们这条记录来删掉,因为之前呢,确实有这条记录,好我来把它删掉,我们再来完整的来测试一次,好,我们这一块呢,全部放行,那现在来到注册页走。
16:30
好,我们来填入我们的用户名。比如我们就叫雷凤阳,然后呢,我们的密码123456,然后确认密码123456,手机号,手机号呢,由于我们这个数据库之前记录已经删掉了,所以没有了,然后发送验证码,我们这一块呢就不debug了,我们将所有的断断点都可以先来去掉。好。我们直接来进行放行,好我来发送验证码,那验证码呢,现在肯定就发送成功了,我们现在取消了de bug,好我来收取一下验证码,叫5F8B3,那就5F8B3,好我来点立即注册走,好那现在注册成功呢,就跳转到了我们的登录页,但这个登录页大家注意,它还是跳到我们当前服务器带了端口的,那这个登录页呢,我们要写成域名的方式,好那我们就来到这一块重新来改一下所有的注册页以及登录页的前置地址,那都一定加上我们自己的域名,要不然我们的静态资源不能过NX就访问不到,好我们来到这加上域名来重新启动,重新启动呢,我们这两个服务主要是奥服务,那数据库里面的记录呢,我们来也删一下,把这一块呢,我们来调试通过就行了,好来删掉,我们来重新注册一个数据。
17:50
好,我们开始访问我们的author的注册页,现在服务还没有启动,来刷新一下,好,我们现在来注册我们的用户,123456 123456手机号,来填一个,让他来发送验证码,走,好,我来填写一下我们收到的验证码,0e d be,那就0EDB。
18:13
一好,我来点立即注册,那注册成功就跳转到了登录页,同时我们数据库里边刷新,那就会有我们这个数据啊,这个密码呢,就算别人拿到与我们加的这个类似于颜值之类的东西是随机的,所以呢,它也是没办法破解的,好,那么注册功能呢就结束了。
我来说两句