微信小程序之token验证

作用:防止攻击,避免其他人随意的调用接口,以保证数据的安全性。

在使用token前,首先了解下缓存的使用,比如(memcache/redis)等,在配置好memcache或者redis缓存后,下面就开始代码讲解

   首先要生成token将token存入缓存中设置缓存时间 ,然后将token返回给小程序的前端   ,前端获取token后 验证,验证后将token通过headers传到后台,后台接收前台传过来的值,并在每个接口中加入token验证代码,判断前端返回的token与缓存中的是否一致,如果存在则返回接口数据 ,如果不存在则不返回数据直接退出接口。

 

//通过code生成token      code不可反复使用,只能使用一次
            string url = "https://api.weixin.qq.com/sns/jscode2session?appid=wx0eac3f4a1fef6170&secret=90386e2451500b0ba8cc75613d294e83&js_code=" + code + "&grant_type=authorization_code";
            string content = DoGet(url);
            if (content.IndexOf("errcode") > 0)
            {
                WXuserinfo wx = new WXuserinfo();
                wx.statusCode = 404;
                userinfo.Add(wx);
                return userinfo;
            }

            string openid = JObject.Parse(content)["openid"].ToString();
            var uuidN = Guid.NewGuid().ToString("N");
            string time = DateTime.Now.ToString();
            //string token = Basic.MD5Encrypt32(uuidN + time);
            string token = MD5Comm.Md5Hash(uuidN + time);
            //获取到的用户openid,将token作为缓存的键存入缓存   设置缓存时间一天
            api.cdchuandong.com.App_Start.Memcached.Add("APIUSERID_TOKEN_" + token, openid, DateTime.Now.AddDays(1));
           
            CD.ChuanDong.Users.RemotingServer.Model.WXUsersInfo wxUsers = CD.ChuanDong.Users.BLL.WXUsers.GetWXUsersByOPenID(openid);
            if (wxUsers != null)
            {
                //添加缓存
                api.cdchuandong.com.App_Start.Memcached.Add("APIUSERID_TOKEN_USERID" + token, wxUsers.UsersID);
             
            }
 

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值