00:00
接下来我们来编写注册功能,在注册之前我们先来调通一下给手机发送短信验证码,那这个短信验证码呢,这都属于我们的第三方服务,跟我们之前用的阿里云的对象存储一样,那这第三方服务的使用我们可以去先开通,然后参照API文档用就行。好,我们来到阿里云的官网,来百度搜索阿里云。我们来在阿里云的官网里呢,有一个云市场,云市场里边提供了非常多的我们这些接口,我们包括有短信的发送,以及我们物流查询,实名认证,信息查询等等等等都有,但这些接口呢,想使用起来肯定得付费,那我们先来点进这个短信接口,那接口里边呢,这里边儿有我们这个零元体验的,我们就点进来先用着,那这有呢,一个零元五次们就来购买这个短信接口,先买来以后呢,我们才可以来使用,当然如果企业有大量的需求,那就去买其他的套餐,好,我们来买,立即购买。
01:03
我们先来登录阿里云,使用我们的支付宝来进行扫码登录。那登录成功,我们接下来就可以购买我们的这个零元五次,我们先来买它,我们点一个立即购买,哎,我们先买来再来看怎么用来已接收,就是去来买这个短信接口,那买成功以后呢,我们可以在我们的管理控制台,我们可以看到我们这一块的短信接口,诶我们这儿购买的短信接口,当我这个零元五次呢,买的比较多,所以呢,余量还有挺多的,那这个东西该怎么用,我们可以来点进我们这个零元五次的这个接口来参照它的文档来使用就行了,那这个短信接口,诶这个短信接口呢,我们来往下翻,我们来看,诶我们要发送短信,我们可以调用这个功能,那么特别呢,我们是来发送短信验证码的,下面还专门有一个,那短信验证码的这个接口接口呢?首先调用的请求地址,那就给这一块来发送请求,请求方式是get,它会为我们返回接森数据。
02:04
包括呢,API调用的时候,要验证你的身份是否有权限调用,它是使用APP扣的方式,当这个后来我们再说,然后呢,发送短信的时候,我们可以看到请求参数里边请求头可以什么不带,然后请求参数里边需要带这几个参数,第一个叫code code呢是我们要发送的这个短信验证码,我们真正的验证码,还有我们的这个份,我们要给哪个手机号发还我们的这个签名版编号和模板编号,这个模板是什么?他说建这个产品的详情页,那就在下边儿来,这是我们这个模板编号,比如一号呢,我们发送的短信就长这个样子,来艾特服,那就是我们真正的内容了,如果我们想要用哪种模板格式的短信,我们就来使用哪种就行了。好,那接下来我们就来调试我们这个短信验证码的发送。我们先来点击去调试,我们先把它调通,我们来看它需要些什么东西,我们在这调试的时候呢,这个控制台已经自动帮我们来填好了这些地址,诶我们给这个地址来发送get方式啊,格式呢是这样,这是路径,然后呢,这是我们发送的验证码,比如我们来写一个778899,我们自己来输一些验证码,然后呢,我们要给哪个手机号发好,我们来填一个手机号,那这一块呢,我们都来选中默认的,然后接下来注意这一块,这一块呢要使用一个APP code的才能发送,那这个code的呢,它默认是填好的,那如果没填好我们APP code的在哪来看,那购买的这个短信接口,我们在后台控制台,我们每买的这些服务,它下边呢都有一个APP code的,包括这之前还有我们买的服务,赠送的其他服务,那这呢,我们把这个APP code的就必须复制来,我们来调用他们的时候呢,就得拿到我们的这个APP code好,然后呢,我把这个APP code。
03:55
给这一填,它是自动填好的,我们可以不填,我先来点击发送。
04:01
好,发送的这一块说我们这个发送成功,那这个到底成功没成功呢?我在手机里边看一下来给大家验证一下,来手机先投屏过来,大家看一下我手机有没有真正的收到短信验证码。好,我们看到这有一个来点进来,那这个验证码的格式呢,是这是这样样子,它前面呢,有一个消息秘书什么你好,验证码是多少,20分钟有效,那这个格式呢,全部都是参照这个API文档我能看到,因为我们发送验证码的时候呢,是使用这个一号模板,那这个一号模板我们来往下翻。那一号模板呢,那就是这个样子,你好,验证码是什么?那如果我们来切换一个模板,我们来看一下来现在选择另外一个模板,比如我们这个13号,哎,本次登录的校验码是什么?好,我们使用13号。好,我们来点击发送,好现在发送成功,我们来继续来看,我们这个手机收到验证码,好,就是它我们点进来,诶我们发现呢,现在变成了本次登录校验码是这个,所以我们这个验证码呢,是可以发成功的,但主要呢,大家就要搞清楚发验证码的这几个参数,其中这个散这叫签名,签名属于哪一部分呢?属于这这叫消息秘书什么什么的来看呢,它这儿有一些签名,比如呢,我们在这个产品的详情页里边,那如果使用Java来发送这个验证码,它这呢有一个签名模板叫175622,当然这些签名模板如果是自己的公司的名字,要去找客服去来申请,诶这一块都说的清楚了。
05:41
我们呢,去来找客服发送我们的这个模板签名,那接下来我们来换一个模板,好,我们现在呢就来换成。我们刚才复制的这个明白,我们来看他签名变成什么样子,我来点发送请求。好。
06:00
那现在呢,这个验证码还是发出去了,我们来看一下效果。好,我们看到呢,我们这一块呢,已经接收到了验证码,好,我们现在看到我们切换了这个签名以后,这就变成了其他公司的名字了,好那我们的短信验证码功能就调通了,主要呢,就是我们这一块,我们按按照我们的是用哪个模板和哪个公司签名,但主要还有这一块,它的APP扣的,这APP扣的呢,我们在发送的时候,我们发现我们在控制台呢,是这种方式,但是实际呢,他请求发出去是这样来看,这是我们的请求的完整信息,Request UR的地址呢,是这一块,这是我们要发的手机号,模板名,还有我们的这个公司签名的名,然后这个header就是请求头,请求头里边呢,有一个这个东西叫authorization,相当于咱们这个认证的模式,然后呢,有一个叫APP code的,然后中间就是我们复制的值,而且按照文档这一块呢,也都能读的很清楚,把它打开。
07:04
APP扣的这种方式来验证身份是怎么验证的?他说,如果我们想要调用阿里云的这些API,那我们可以通过APP扣的方式来验证我们的身份,那我们购买了以后呢,我们都有我们的APP code。那接下来我们的使用方法是在我们的header里边添加一个authorization字段,所以我们看到发请求的时候,这个请求信息header里边有一个authorization这个字段,然后这个字段的值呢,是APP code的,加上我们真正的APP code的值,所以以后我们要发请求只需要把这个拼上就行了。包括呢,我们也可以来模拟和曼来进行发送。好,我们现在来模拟发送验证码功能。我们来点开,如果我们使用慢法,那就应该是这样,我们还是来到控制台,它这个调用地址呢,是这一块,那我们把这个地址先复制到psman里边,这是我们的地址,那我们就加S不加S都行,我们不加S,然后呢,接下来我们的要传的几个参数,按照文档那就应该是这样,首先扣的是我们真正的验证码。
08:14
那我呢,就叫123123,还有我们的这一块其他参数叫份我们的手机号。123456,还有我们的K,来看一下,这个是我们的C,我们的签名模板,那我就来写一个一。好,然后呢,我们的内容模板,那我们还是来在客服里边列举的这个内容里边,我们还是选一个一大,大家也都可以联系客服自定义,好,我写完以后呢,我们来点击发送走,点击发送呢,接下来就会给我们响应成功还是失败,但是大家看到如果我们就这种来发送,它会返回的状态码是401。On alsoizedd,也就是说我们没有进行认证,认证不通过,那想要认证通过怎么办?我们给请求头里边加东西,那加什么呢?它这一块按照APP code的方式,它说是这样加一个authorization,好,那么就authorization值是什么呢?它说是我们的叫APP code的空格,加上我们的这个值,好APP code的空格,然后加上我们真正的APP code的值,把这个复制过来。
09:24
复制好我们来到曼里边,那我们现在相当于给请求头里边加东西,以后我们再来send,诶发现呢,这一块就发送出去了,只是说手机号码错误,那么就给填一个正确的手机号,我们来点击send。能发送请求出去,那一切都返回OK,那说明我们一切是正常,那我的手机呢,也收到了这个短信验证码,所以我们现在呢,这一块就调试通过了,但我们真正的这个功能啊,当我们来点发送验证码的时候,不是我们写GS代码,然后带上我们的APP code的直接发送给我们指定的这一块地方,那这就很危险了,别人呢,F12控制台一看,诶,我们这个请求呢,是调用哪段GS发送请求的时候还拼的APP扣的,我们这APP扣的都是保密状态的,如果泄露出来,那别人恶意使用你的短信验证码功能,发送超多短信,我们这个立马就没有多少短信剩余了,所以这个这些攻击我们要防,那怎么办呢?那么就应该是我们点击发送验证码的时候,给我们后台来发送请求,然后呢,我们后台再去自己来调用程序,我们来发送短信验证码,那我们来去来调用这段程序呢,包括我们的AP。
10:40
文档里边都有,那这个Java发送验证码的示例,那这个示例呢,我们就来测试一下,由于我们是第三方服务,那以后呢,将所有功能都写在这个第三方服务这个平台里边,算party,好,然后我们第三方服务里边,我们现在要加一个短信验证码,我们先来单元测试,把这个先测通,测通我们来写上一个方法,Public want,好,我们就叫send SMS,我们这是发送短信的,好们来写一个an task。
11:12
我们这个呢,主要是发送验证码的,还不是真正自定义短信内容,好我们这个验证码呢,我们先把这一块的整个我们全部复制过来,这是它的这个方法。好,我来复制过来。Con wi。那粘过来,我们先把这个该导的依赖我们先导进来,曼普,包括我们的哈希曼普啊,然后呢,下边这个http us,那这些东西呢,我们来看,重要提示大家一定要阅读文档,它这个HP us啊,请从这个地方下载,或者呢直接下载这个压缩包都能找到,而且htv u它会依赖一些东西,这个依赖的这个东西呢,都在这个POM文件里边有,那我们先把这个htp u那先下载过来。好,我把这个呢复制下来。
12:00
我们来在浏览器上来打开来看一下这个HVU的内容,诶下面呢,这就是我们这段Java代码,好,这个东西呢,我们经常要用,那我们就也写在我们的这一块,我们的这个YouTube包下有一个叫HD YouTube,把它的这个完整内容呢全部复制过来好。报名就不复制了,我把这一块呢全复制一下。Control c,然后呢,我们全在这呢,粘一下control v,好,Control home,我们来到这一块来看我们要导什么依赖,那我们发现呢,我们粘过来以后,整个HVU是直接可以工作的,我们都无需导依赖它里边要用的这些阿帕奇,由于我们这个第三方服务里边,我们导了其他的这些web开发场景啊,包括我们的common可能都已经包含了他要用的这些依赖了,特别我们导了阿里云的对象存储,那阿里云的整套产品用的依赖都是差不多的,所以我们现在依赖都不用导了,那这个YouTube工具过来了,我们直接到单元测试里边,好,那现在导入我们自己的HPU,然后呢,这是response,那就叫响应导过来,然后还有这个,好,我们把这些东西呢,全部都删掉。
13:16
呃,注释呢,我们就可以删掉,都导完以后,然后接下来我们来看短信发送怎么发,这些路径是固定的,SMS也固定好,接下来这一块要填写我们自己的AP code,那我们的AP code呢,我们就从我们的控制台里边复制过来,好复制,然后我们在这儿来尝试一下。把我们的p code的我们复制到这,然后接下来剩下的代码我们都不用写,相当于前面的这个可配置项,他们呢,已经帮我们组装好格式了,我们看到这个alsoization是我们的APP code的空格,加上我们自己写的这个值,然后呢,这是我们要发的验证码,比如我们发6789,然后呢,这是我们要放的手机号,好,我们来写一个手机号,然后呢,这是我们的。
14:04
内容模板,这是我们公司的这个签名名称,然后接下来他就利用这个HTV工具发了一个get请求,帮我们发出去,然后拿到响应,诶我们就来测试一下走他呢,其实也就是给我们目标地址来发送请求而已。其实给目标地址发送请求,我们spring加的rest template也是可以做的,当然人家封装的这个HD有了,那我们用起来就更方便了,好,我们发现呢,这一块短信验证码发送成功,同时我的手机里边呢,验证码也进来了,我们也不用给大家投屏看了,那这一块程序呢,那就是对的,那现在我们要做的就是我们把这一块呢做成可配置的,而且我们要发短信,我们要调用这个方法,所以呢,我们再来抽取一个公共方法,那么自己来写一个组件,我们就叫component,我们把我们的组件都放在component这个包下,那我们的组件呢,就叫SMS component。
15:02
以后呢,我们发送短信,我们就来用这个组件,好,我们这个组件呢,我们先来写标注,我们是一个组件,让它自动放到容器中,我们以后想用自动注入就行了,接下来我们就来写一个方法,Public we,我们第一个是send code,那这个是发送短信验证码功能,那发送短信验证码功能我们现在就要两个东西,那第一个东西我们是给哪个手机号发的,所以呢,我们让他传一个手机号,第二个呢,我们的验证码是多少,你也可以给我传过来,那么接下来呢,就给你来发送这个验证码。好,那接下来我们把我们的这一堆方法直接给这一复制就行了,我把这一块呢,全部复制过来。那想要复制过来呢,我们再来做一件事,就是这块东西呢,们做成动态可配置的,好我加一个private string,首先呢,你短信的这个地址在哪?好我们得写上第二个我们短信的整个发送的,它这儿还有一个前置路径,好我们也来加上,全做成可配置的,然后呢,我们再来加上我们的这个模板的名字,主要呢,就是我们这个scan,我们是使用哪个内容模板,然后呢,还有我们的这个公司的这个签名,这个公司签名配置,我们找客服配好以后,他给我们返回这一串号,我们就填上这个,那我们希望呢,这些都是来自于配置里边的,好我把这一块呢,我就全部转过来host的内容,那么就把这几个就删了,Pass我就删了。
16:38
然后呢,这个skin我们也用传过来的,包括呢们的签名我们也用传过来的,当然我们要为这些方法呢生成get set好。接下来最重要的就是这个APP code,那我们也得配置好string APP code,那么把这些都做好以后呢,我们希望它能放在配置文件里边,配置跟配置文件绑定那就最方便了,跟配置文件绑定呢也非常快,我们只需要一个注解叫configuration properties,然后呢,我们来说清楚跟配置文件的哪个前缀。
17:13
那我们的这个前缀呢,我们来看咱们这个第三方服务里边,我们之前呢,配阿里云的对象存储,我们也绑了一些,比如我们叫spring,阿里cloud,好我们所有呢,跟阿里云有关的,我们全部配成这个阿里cloud的前缀,好spring点一个好,我们来加上我们的阿里cloud。我们全部放在这儿,那阿里cloud里边呢,接下来我们就来放上,而且我们说这个要有提示啊,他说要引入一个我们这个内容的这些处理器,这个处理器呢,我们之前都引过。我们可以把这个处理器的东西,我们之前好像在商品服务里边,好我们把这个处理器好这个w boot configuration processor,把这个拿来我们以后呢写就有提示了,当然不引也没什么关系,好我把这个呢,现在来引过来,然后呢,我们接下来我们继续来编写们跟配置文件里边的这里我们进行了绑定,那绑定了以后呢,接下来我们将所有的这三项我们都配置到配置文件中,当我们这个引过来以后呢,我们最好把这个项目来重启一下们的第三方服务,来找一下我们第三方服务在这来把它启动一下。
18:24
那启动起来,我们接下来在里边写配置,那我们就有提示了,那就把我们所有的东西呢都配好,我们来到这个压面里边。嗯,我们来稍等它启动。好,我们现在呢,启动成功,那启动成功,接下来我们就把这些我们来配到配置文件里边来打开这个页面,首先呢,在阿里cloud下,好,我们有一个叫host。这块提示没出来,包括我们在这儿绑定的时候,我们来顺便也加上,那现在既然是发送短信,我们就来配成SMS这个下边的好来CTRLF9,我们这个让项目呢重新来编一下,我们接下来再来写在这个压ma尔中配置阿里可到的下,我们首先得有一个SMS,然后呢,它下边有我们的这个host,我们主机地址来找一下,首先呢是我们这个host地址。
19:16
好,我们把它配置过来。把这个后侧地址呢复制过来,我们之前剪切了,好,我们现在把这个重新来复制过来。我们再帮助文档里边。还是把他这个短信的货色地址。CTRLC好拿过来,这是我们的host,然后呢,第二个我们还要配一个是我们的pass,我们的路径好来到这个雅马尔里边pass这个路径是什么呢?我们来对照着这一块SMS2个斜杠的路径好,然后呢,接下来我们还要配置一个叫这个皮肤这个SKRG好,我们这个皮肤这个样式呢,我们是一,还有我们的这个签名模板,现在呢,都用上一。
20:03
那么这几个配完以后呢,最重要的就是我们的这个APP code,好来这APP code,那真正的内容呢,那就是我们要去控制台里边复制过来。好,把它抽取过来,那以后呢,想要发送短信验证码,直接把它自动注入掉,这个方法就能发送了,好,那接下来我就来测试一下,我们在这儿来进行单元测试,好,我们来重新来测试public这个test send code。好,我们来写一个,我先把我们自己取的这个组件,我们来注入过来,这个组件呢叫SMS component,好。然后呢,我们来给它写上。主要呢,它里边有一个方法点一个叫send code,这个send code呢,我们可以传入一个手机号,就传入我的手机号。
21:02
然后呢,再来传一个验证码,这验证码呢,我们来随便写一个随机验证码,然后我们接下来这个方法就将你传入的手机号,诶当然给谁发,那这一块呢,是动态的,还有这个验证码,诶用你的验证码,然后呢发送出去,那发送出去呢,那就有成功和失败,只要没异常,那就成功想感知了,感知一下我们这个呢,都是没必要感知的,因为如果用户真的收不到这个验证码,他应该在这儿呢,60秒以后再来点击发送就行了,好,我们来测试一下我们的这个方法,看能不能正常运行走,好们现在呢,已经发送成功,只不过这一块呢,有一个空指针,异常是在我们这个39行来看一下,就是在这儿,那这个空指针呢,那肯定就是我们的褐色地址,它这些呢没找到,来测试一下。在短信发送的时候呢,我们来看我们在配置文件中绑定的这些东西能不能用来我们来直接以debug模式好。把整个项目呢,来重启一下我们这个短信验证码的这个发送的这个组件,它是跟配置文件里边来进行属性绑定,那绑好以后呢,我们确认在配置文件里边spring这个阿里cloud,对了,它有一个前缀叫cloud阿里,所以我们呢,这一块一定要绑定正确。
22:19
那绑定正确以后呢,我们肯定就没什么问题了,我来直接RETURN1下来做一个测试,那现在呢,在这来单元测试,让它慢慢启动,来重新测试一下,代码改了以后呢,我们之前的配置文件绑定少了一个前缀,好我们现在测试。好,测试通过我们控制台打印呢,都是OK,那说明我们整个验证码呢发送成功,与此同时呢,我的这个手机验证码呢,也已经发送过来了,那这就是我们这个调通了短信验证码功能,并且我们自定义封装了一个组件,那我们以后发送验证码,我们就来用它。
我来说两句