api postmain 鉴权_API 接口鉴权设计

本文讨论了API接口鉴权设计的问题。目前采用session认证,计划转向token方式,但面临PC端自身使用和第三方开发者使用的冲突。考虑中遇到的问题包括公共token的安全性和API的开放程度。对比了GitHub和知乎的API设计,寻求既能保护接口,又能支持多用户场景的解决方案。
摘要由CSDN通过智能技术生成

已经开发好了一套 RESTful API 接口,方便PC端和APP端调用,只进行了 session 认证,每次调用 API 都会检查当前 session 中是否存在 uid,也就是判断是否已经有用户登录了,这样可以防止未登录的用户调用API接口,但这样设计肯定有问题,所以我想用 token 方式认证,类似于 github 的 token 认证,在调用 API 时携带 token 进行认证,这样不需要用户登录也可以对用户进行鉴权认证。

想法虽然很好,但遇到了一个问题,我的这套 API 接口不仅提供给其他开发者使用,我自己网站也在使用,比如主页显示所有用户,api 为 http://api.example.com/users, 我会在前端用 fetch 请求 http://api.example.com/users,得到返回值后在主页显示所有用户信息。如果我使用 token 认证,那 http://api.example.com/users 这个 API 地址也要加上 token,但这又是网站使用,并非第三方开发者使用,那这个 token 用谁的呢,肯定不能用某个开发者的,那就只能用一个公共的 token,但一旦在PC端API请求时加上了这个公共 token,只要打开开发者工具这个 token 就人尽皆知了,也就失去了认证的意义了。

我看了 github 的做法,他的前台页面数据读取都没有使用 api 接口获取数据,而是直接返回一个页面的,包含html和css,比如读取我的 star 项目,github 请求的 url 是 https://github.com/joyran?pag...,而如果用 api 获取数据则为 https://api.github.com/u

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值