1
notedit 2012-12-24 19:57:27 +08:00 1
Flask-Principal 没用过,我说一下我能回答的吧,
1,你的情况flask-login 已经完全能满足 2, 这个我没遇到过,但sqlalchemy有其不方便的地方 3, 不清楚 4, newsmem 有不少值得借鉴的地方 但newsmem用到的module 来组织app已经被flask废弃了 现在用blueprint |
2
talentsnail 2012-12-24 19:58:10 +08:00
收藏一下,等回复,问题都是我关心的。
|
3
willerce OP @notedit 我猜测是这样: flask 把 session 中的对象通过SECRET_KEY加密后直接扔到cookie(所以 flask 的 session 感觉都特别大)。
猜测的理由:把 cookie 或 修改 SECRET_KEY 后 restar,session 就不存在了。 |
4
armoni 2012-12-24 20:42:54 +08:00
答下三:只靠cookie来实现保存登陆功能是比较初级和差安全性的,真实实现不靠谱,具体可参考《你会做Web上的用户登录功能吗?》http://coolshell.cn/articles/5353.html
|
6
againstodds 2012-12-24 21:45:12 +08:00 1
2. 直接使用flask.ext.login.current_user 来获得当前session的用户,不需要在把user set到session中
3. 你的user是自己放到session中的,数据库删掉以后,session也要清空。合理的做法应该是服务器拿到用户的cookie,然后去数据库中查找用户是否存在,不存在的话就让用户重新登陆(顺便清空session)。identity_loaded 是用户存在的基础上,用来load用户的角色,权限的。所以不适用在你这个例子上。 |
7
kebot 2012-12-25 00:10:33 +08:00 1
另外: flask的session是默认保存在 cookie 里的, 这本质上是保存在客户端的.
如果要使用server-side session, 可以参考这个: 保存在redis里面的: http://flask.pocoo.org/snippets/75/ |