api接口不能随意调用,所以得对api做权限控制,确定用户身份,在传统网站就是通过登陆来确定是谁在调用接口,确定用户身份。但是api接口并没有登陆这种说法,而是通过token令牌来确定用户身份,用户登陆就是获取一个令牌:
通用的Token令牌身份认证体系:【在真正实现还会涉及具体的细节技术,比如缓存和Token生成方式】
1、获取Token令牌:
客户端携带账号、密码去调用服务器api接口 getToken ( 是给用户生成Token令牌的接口 )。
服务端验证客户端是否发放令牌。
2、访问需要权限的业务接口:
客户端携带Token访问接口(比如下单接口)。
服务端查询数据库,验证客户端,通过就可以访问下单接口了
具体项目:客户端是小程序,因为小程序是基于微信体系,而微信已经有自己的身份认证体系。,所以没必要再设计身份认证体系。
1、获取Token令牌:
小程序为每一个登陆用户生成code码,去调用服务器api接口 getToken ( 是给用户生成Token令牌的接口 ),getToken发送请求把code传送给微信服务器,微信服务器接收到code码,返回openid 、session_key(openid相当于用户唯一身份标识),服务端不能直接把openid传到小程序,而是生成Token, 存储openid,将Token和用户信息存储在缓存中,加快访问速度,而不能直接存在数据库中,这样消耗大量内存。
2、访问接口:
小程序携带Token访问接口(比如下单接口)。
服务端查询缓存,验证小程序,通过就可以访问下单接口了。
其它可参考文章:
http://blog.csdn.net/u010832551/article/details/51003101
http://blog.csdn.net/iawwfn87/article/details/72594021
http://www.cnblogs.com/bukudekong/p/3829875.html