之前的时候一直用的flask做后端的,只是用了后发现他是阻塞式的,对比了一下sanic后果断的换了sanic。说实话用flask的确是很方便。什么东西拿来就用的。登陆管理有Login模块,很方便。但是选择了sanic就选择了自己造轮子了。
我的后端用的是golang和sanic所有的api请求全部放到golang里面,实际上sanic的角色就是主要的逻辑判断和模板渲染。毕竟golang的处理能力和Python相比要强得多。这样把主要的负载放到golang里面就不用担心sanic了。当然sanic和golang是共享登录状态的。今天总结一下大概的。
登陆状态管理:参考了github的一个别人的小demo然后自己用flask的思路实现了,flask的@auth.login_required,logout,
is_authenticated,is_anonymous,current_user目前主要用到的是这几个,登录状态是基于redis存储的不是cook保存。角色权限这一块目前还没有去做后面会慢慢完善。
用户邮箱激活:这一块也是基于flask的思路来做的不同的是用的异步方式。主要思路是注册后异步发邮件后发一条加密后的连接给用户邮箱。点击连接访问激活路由的时候进行解密验证,当然加密的东西必须和这个用户的资料相关,因为解密后核对的时候和用户的资料某个字段对比,过期时间就很简单了,加密时候加一个时间戳进去,解密后会得到一个用户资料某个字段和一个时间戳,和当前时间对比,超过多久就过期判断一下过期了就不给激活abort(404)就可以了
用户注册登陆账号密码前后端的加密传输加密保存:这里最重要的实际就是前后端要采用一样的加密解密方式其实没有什么难度。
基于redis的用户请