php开发openAPI程序怎么设计

查看:59
本文介绍了php开发openAPI程序怎么设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

  1. 想做一个API管理平台的功能 (功能类似于 新浪微博的openAPI 功能不用跟微博openAPI的那么强大)

  2. 调用接口需要授权 授权之后 使用方拿到 用户名 token 等授权信息

  3. 使用方调用接口 参数包含: 用户名 token或者签名儿 等接口参数

  4. 可以设置token的过期时间和token调用次数限制

  5. 可以记录每个用户的调用次数 调用记录

我的思路是:
用mysql存储用户名,签名,token,授权日期,用户权限等信息
用redis的string存储 用户的调用记录
收到使用方的请求之后 根据token验证这个调用是否合法 根据用户名来验证他是不是有权限调用这个接口,是否超出次数限制,超出频次限制,等信息

SF的朋友们,有没有好的思路,或者有类似的开源程序推荐一下 感谢

解决方案

1.既然是Api管理平台你应该有个api表,你的描述上都没提及这个点。其实说api表的话会有点奇怪,我可能会在建一张Services表(服务),一个服务可能提供多个api。

2.授权这块可以参考微信、新浪这些第三方平台开发,注册用户的时候为其分发APPKEY与APPSECRECT(这里的想法是一套设置使用全部服务),用户使用这两个去获取权限判断所要的access_token参数

3.参数大概就这些,参数带的方式的话用GET或者放在header头里面传,https://github.com/firebase/php-jwt 网上比较流行的JWT认证,一个对PHP JSON 网络令牌编解码的库。

4.token的次数与时间设置可以使用你下面提及到的redis机制,感觉不用存表。

5.调用次数,调用记录的话用redis是正确的,可以参考下hash结构

以上,是一些个人的理解,欢迎大家一起讨论。

这篇关于php开发openAPI程序怎么设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆