ThinkPHP5-Token令牌验证身份以及权限

84 篇文章 0 订阅
73 篇文章 0 订阅
微信登录令牌
    传统网站 用户登录
    小程序   令牌 (分 权限)

        获取令牌
            客户端(携带帐号 密码) --->getToken接口   <-->帐号 密码 Token(令牌) Auth(权限)
        访问接口
            客户端(接待Token) --->访问接口(如 下单接口) <--> 帐号 密码 Token Auth(核对令牌 有效期 确认权限)
    微信身份认证
                                微信服务器
                                    || openid session_key
        客户端(小程序) 携带code码--->getToken(获取openid) --->生成Token  存储记录openid
                            返回Token  <---
        访问接口
            客户端(小程序 携带Token)--->校验Token(缓存中获取) --->访问接口(如 下单接口)
        1>openid 就是用户身份唯一标识
        2>session_key 在小程序里面 可以直接访问微信服务器 拿到加密信息(一个id unionid 也是用户的唯一标识)
            区别是  一个用户针对一个小程序openid
            不同小程序之间用户关联 一个用户在不同小程序里面openid是不同的 使用session_key解密出来的  unionid 同一个帐号注册的小程序 公众号 unionid都是相同的
        3>实际上将 Token和用户信息存储在缓存中 加快访问速度(若是Token存储数据库 频繁访问数据库验证Token 增加数据库压力)
            openid涉及到用户身份信息等机密信息 不能返回到客户端 ---安全性
            openid固定不变 没有失效期 若是丢失安全隐患
            所以 生成有有效期的令牌 返回给客户端 通过令牌找到openid

        实现:
            1>Token 控制器 调用验证层 $code 必填 不为空 'require|isNotEmpty'
            2>调用service 层 get方法  返回token
                CURL发送HTTP请求 返回code  ---字符串格式
                判断errcode 处理异常
                成功返回openid 查询数据库 否则新增记录 返回uid
                生成令牌(一组随机字符串 当前时间戳 自定义salt 三组字符串md5加密)
                组装缓存数据 将uid 返回errmsg errcode scope(权限)组装成数组
                将令牌 缓存数据 令牌过期时间(配置成缓存过期时间) 写入缓存
                TP5默认是 文件系统缓存$request = cache($key,$value,$expire_in) ; 可以配置成redis 对象或其他缓存服务
                将令牌返回

            3>servic层 调用model层  将openid存储数据库
            4>application/extra/自定义配置文件  appid appsecret 访问接口
               小程序访问微信接口wx.login 返回code
               后台服务器获取code 访问微信接口 返回openid secret_key
               将自定义tiken_salt   token_expire_in配置在配置文件中





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值