Restful设计风格Token-based Authentication疑问请教

发布于 2022-09-03 13:50:26 字数 787 浏览 21 评论 0

萌新这几天开始接触Python的Tornado框架,正常的后端渲染,用render,cookie验证状态通通都顺利,但想写restful api时在写auth时感觉无法下手。主要是token-based authentication问题。

我的总体思路是如此的:
图片描述

1.参阅过许多的文章,但不甚明白,只知道无论token还是HTTP头部验证,都需要SSL传输。因为编码base64仅仅为了兼容性而非安全性。

2.现在已经基本实现了HTTP Auth的验证,但HTTP Auth只有关闭浏览器才会真正登出(这句话是否正确?)。另外我想实现token,但token的保存位置非常迷惑,另外restful下不能使用redirect等框架方法,应该如何跳转?

3.这里的登录,在HTTP Auth是”弹出框“要我输入账号密码,这与表单登录有何区别?

4.保存在cookie并不妥,虽然有文章指出即使保存在cookie它与cookie依然有着本质区别,但无法做到完全的stateless,最佳实践应该是如何?而有些”大牛文章“表示存在cookie也无问题,但那样不是违反stateless原则吗?

5.目前有两种思路,一种是在Tornado中的路由函数的父类即BaseHandler那里设置验证token,未登录或过期的跳转登录。二是做一个装饰器,在需要的url前加上保证要提前验证否则跳转登录。

一片凌乱,完全无从下手,求教,非常感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暖伴 2022-09-10 13:50:26

首先你的应用是前后分离的,有一部分逻辑是在前端处理的。
1:你这句话是陈述句,不知道回答什么。
2: 你只是实现REST的API的话,前端就应该使用Angular等框架,跳转的事情交给前端处理。
3:HTTP Auth是可以通过参数传递的,当没有传参数的话操作系统或者浏览器有自己的实现让用户输入帐号密码。
4:这里的检查cookie指的是浏览器的cookie,是前端检测的,只有不再HTTP请求传入就依然是无状态的。
5:真正REST的API只在并且一定在需要Auth的接口验证Auth,至于因此会传输更多数据的情况REST API多少都会造成数据冗余,为了保证无状态。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文