在开始之前先放两篇参考,一篇英文http://bshaffer.github.io/oauth2-server-php-docs/cookbook/,一篇中文https://www.cnblogs.com/endv/p/7868549.html,中文博客里的内容基本上是把英文官方文档翻译一遍。到这里如果你不知道OAuth2.0是啥可以自行百度,百度上一堆讲解OAuth2.0到底是什么用来干什么用的。智能家居的对接很好用,式搭建之前先看一下天猫精灵官方对接文档怎么说,
其实道理很简单,就是阿里平台默认接入的硬件厂商都有自己的平台,既然有自己的平台就有自己用户认证系统,天猫精灵就是通过OAuth2.0在不需要注册新的硬件厂商用户的同时使用用户已有的账号获得硬件厂商的认证系统的授权,使得天猫精灵能够访问该用户名下的硬件设备,然后完成指令的交互。不知道这么解释,解释清楚没,再用大白话说一遍就是“我不是你家人要吃你家饭就要经过你爸妈的同意而不用成为你的家人”,嗯,我感觉这句话不错,哈哈。好那我们现在就要知道我们搭建这个具体需要神马东西。看图
我们做了这么多其实就是要提供这些东西,这个东西在神马地方提供,不急这里先不说,我们放到下一篇文章中说。先解释一下这些东西都是神马意思,然后再做的时候就比较有针对性
1、账户授权连接,指的就是提供输入你在硬件厂商注册的账号和秘密的连接,这个由第三方硬件厂商提供(哦,好像我们现在就是第三方硬件厂商,嗯,没毛病这个应该由我们来提供),这个就是我们在搭建OAuth2.0需要提供的第一项内容
2、ClientID,Client Secret,前者是你在第三方厂商注册的ID,后者是密码
3、Access Token URL是授权的连接,这个在OAuth2.0会有一个专门的文件做这个事情。
4、开发者网关地址,这个地址是天猫精灵协议POST的地址,会在协议对接中讲。
好知道了我们要做的事,下边就是按照教程进行服务器的搭建了,首先我们要下载环境包,这里我们要把这个东东安装在我们apache的主目录下默认是/var/www/html,我们要首先进去这个目录
然后下载所需要的文件
下面就是要建立数据库了,先建立database 然后在创建tables,首先进入数据库
创建database,自己创建的这个名字要记住,接下来有用
进入database
根据下面的内容直接创建tables,我就不在这一一输入了,按照教程图片里的输入就行
输入完我们看一下,有没有我们输入的内容,看到下面的内容就证明我们的数据库建立完成了。
下面我们需要创建一个OAuth2的服务文档,这个文档将要被所有申请授权的中断调用,命名这个文档为server.php,具体内容如下
着重关注图中红色框部分,第一个框是你刚才在数据库中建立的database的名称就是让记住的那个,username是数据库的用户,如果没有新的用户的话就应该是root,密码是你自己设定的密码,在安装数据库的时候设置的,也让记住的那个。具体剩下的是神马意思,没有研究,有兴趣的可以去看OAuth2的官方文档,我这个是照抄的官方教程的内容,嘿嘿。
我们下一步要做的就是建立一个token控制器,这个文件的作用主要是用于返回OAuth2的Token给客户端,具体这一块怎么工作的我也没有整明白,只要明白是为了获取访问令牌就行了,另外,这个具体的可以参考下图
如果有大神能说明这一块,就留言在下方吧,小狂将会进行更改,我们会在/var/www/html下建一个token.php,内容如下
这一块没看懂,主要参考的是一篇文章,在下一篇协议对接中会给出连接的,先别着急,我们先把OAuth2搭建完成。
然后我们需要在我们刚才搭建的数据库增加一条数据首先我们要先进入我们的数据库Lamp,具体怎么进入见上文,然后输入下文本
查看一下有没有添加成功,一定要记住ID和PASSWORD的内容,在接下来会用到,这个就是需要验证和授权的ID和PASSWORD,如果看到如下图的样子,就证明添加完成。
接着往下,我们会创建一个认证控制器,就是天猫精灵设置页面中的授权页面,名字为authorize.php如下图所示
这个测试会在协议对接中测试,到这基本上我们需要的文件都已经完事了,主要有server.php、authorize.php和token.php这些文件。说实话,这个OAuth2的授权认证过程,小狂也是迷迷糊糊,也是跟着教程做的,原理并不是特别的明白,如果有大神明白还望告知。
这篇文章到这个里也算结束了,我们所有服务器端的准备工作已经做完了,下面一篇文章就要讲解协议对接的部分,主要也是在服务器端部署,我会在协议对接端把所有文件都上传供大家参考使用。