问个规范问题

2019-04-27 22:49:17 +08:00
 qwertyzzz

没咋写过接口 我想问下如果单纯给 app 写接口 一个安卓端一个 ios 端 那啥 token 的话我是不是可以就定死一个值,告诉他们。然后有需要验证的接口需要传这个值给我是不是就行了啊。。我直接拿约定的 token 值判断?那万一别人抓包了拿到传的 token 咋办。。不太明白这个

1698 次点击
所在节点    程序员
12 条回复
wunonglin
2019-04-27 23:00:29 +08:00
对啊,被抓包怎么办?不如不要 token 直接开放吧[doge]。。。emmmm

最简单的验证流程大概这样

const token = 你可以在服务器瞎生成一串亲妈都不认识的字符串作为 token

1、客户端提交账号密码用来获取 token
2、客户端用自己的方式存在本地
3、访问 api 的时候在头部带上 auth 之类的 key 加上 token
4、后台接收到请求后验证一下 token,过了就给数据,不过就给 403
ashlord
2019-04-27 23:03:23 +08:00
固定 token 不就等于没有 token 吗……那为什么还要麻烦去弄验证?
qwertyzzz
2019-04-27 23:09:31 +08:00
@wunonglin 第一步账号和密码是啥呀 0 0.。第三部在头部带上不会被截取吗 还是约定以某种加密方式,我不知道这个 token 需要生成几次 还是只要一个就行了 客户端固定在头部带上这个以大家约定的一个方式来 到时我还解密数据。
qwertyzzz
2019-04-27 23:09:50 +08:00
@ashlord 没太搞懂这个流程 没做过呀
huangzhe8263
2019-04-27 23:19:04 +08:00
之前没了解过,最近也在折腾接口的问题,不知道这个是不是你要的
[JSON Web Token 入门教程]( http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html)
wunonglin
2019-04-27 23:21:16 +08:00
@huangzhe8263

产品经理:我要随时踢某人下线,且不能影响其他用户!!!
你:emmmm
我:[doge]
wunonglin
2019-04-27 23:22:13 +08:00
@qwertyzzz md5、shaXXX
wunonglin
2019-04-27 23:22:49 +08:00
@qwertyzzz 你不用账户密码你怎么知道是谁对你请求的?上 https
xylophone21
2019-04-28 08:01:36 +08:00
你这应该是无用户概念的场景,这种场景下只能尽力而为的做认证,常规的方法从安全到不安全:
1. 设备出厂时加密预制证书,服务端校验证书(这个应该不适合你)
2. 设备出厂时加密预制唯一 ID,服务端从数据库查 ID 校验+TLS,换取 token (这个应该也不适合你)
3. 直接使用设备的唯一 ID,如 UUID 加一个签名校验+TLS+服务端监控异常的 UUID
4. 在 3 的基础上,不换 token 了,直接使用 UUID+签名校验+TLS+服务端监控异常的 UUID

另外,顺便问一下大家 3 和 4 的安全性到底差异在哪里?
虽然 token 能改但 UUID 不能改,但 UUID 换 token 的过程如果被抓,结果是一样的,偶尔使用一次比经常使用安全多少?类似 RefreshToken + AccessToken 的方法,究竟比只有一个 AccessToken (过期等于 RefreshToken )安全在哪里?
a3613051
2019-04-28 08:48:53 +08:00
没错的 抓包拿到 token 就可以被任意用户登录。我抓过无数小程序 银行类 token 都可以直接使用 。
xwbz2018
2019-04-28 09:18:55 +08:00
@wunonglin #6 这功能还真有,分布式 session,sessionid 就是 token,对应的账号信息存数据库或者 redis 里,还要反向存一次方便查找,踢人的时候把 token 一删,用户直接掉线。
wunonglin
2019-04-28 10:15:56 +08:00
@xwbz2018 对所以 JWT 一直是残疾,只能应付小场景

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/559307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX