微信小程序后端开发
- 微信小程序的后端与普通web 后端的区别
- 微信小程序登录流程
- 解决小程序post 问题
微信小程序的后端与普通web 后端的区别
微信小程序与普通的restful api 大致上相同,需注意以下几点限制
1 必须使用https 协议请求后端服务器
2 不支持cookie
3 不支持django 内置的user 登录,因为它使用的是微信用户系统,可以使用,一般要重写,
对应方法:
1去godaddy 网站申请https 证书,下载使用nginx 指定即可,
3可以使用JWT 来保证用户的在线验证,使用pyjwt 实现用户登录/鉴权的组件
或者使用django 内置user 方便,openid做用户名,密码用长随机数;登录时用直接把code传到后端,后端拿着code换session_info,从里面找到openid查user,然后把user传给django-jwt,手动生成jwt返回小程序
jwt jsonwebtoken
是一段带签名的json 格式的数据,其中定义了一种紧凑 (compact) 且自包含(self-contained)的方式用于以JSON对象的形式在多方之间传递信息。信息可以被核实和信任,因为它经过了数字签名。JWT既可以使用密钥(采用HMAC算法),也可以使用公私钥(采用RSA算法)进行签名。*
什么时候需要jwt
http 协议是无状态的,用于前后端分离模式,后端趋于服务化,提供相应操作的接口,例如restful api ,它倡导的就是无状态,无状态可以用 jwt 来实现,利用jwt 将用户状态权限放到客户端,服务端,根据传过去的token 来判断是否有访问这个资源的权限。
jwt 组成
jwt包含了三部分,用.进行分隔:
- 头部(header)
- 载荷(payload)
- 签名(Signature)
生成token
先利用一个数组保存这三个部门,const res=[];
得到这三部分再利用res.join('.')
来生成token
header
头部一般分为俩部分