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

查看:104
本文介绍了python - Restful设计风格Token-based Authentication疑问请教的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

萌新这几天开始接触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前加上保证要提前验证否则跳转登录。

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

解决方案

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

这篇关于python - Restful设计风格Token-based Authentication疑问请教的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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