tp5.1小程序登录

  • 前端代码,将code传给后端
<button bindtap="login">登录</button>
login() {
    wx.login({
      success: (res) => {
        app.base.request({
          url: 'login',
          data:{
            code:res.code
          },
          sCallback: (res) => {
          }
        })
      }
    })
  },
  • 后端代码
class Login{
    function __construct()
    {
        $this->AppID = config('app_id');
        $this->AppSecret = config('app_secret');
    }
    public function index($code){
        $LoginUrl = sprintf(
        config('login_url'),
        $this->wxAppID,$this->wxAppSecret,$code);
        $res_str = curl_get($LoginUrl);//获取openid
        $wxResult = json_decode($res_str, true);
        if (empty($wxResult)) {
            return '获取openid和sessionkey失败';
        } else {
            $randChars = getRandChar(32);//生成一个32位的随机字符串,包含大小写字母和数字
            $timestamp = $_SERVER['REQUEST_TIME'];//得到请求开始时的时间戳
            $token = md5($randChars . $timestamp);
            $result = cache($token, $wxResult, 3600);
            if($result){
                return 'token:'.$token;
            }else{
                return '获取token失败';
            }
        }
    }
}
  • config中的login_url
"https://api.weixin.qq.com/sns/jscode2session?" .
        "appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"
  • 登录结果
    在这里插入图片描述
  • appid和secretkey也可以写死,不过不要因为太长而在编辑器中手动换行,不然登录不了
$LoginUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=wxb961920bdfabbccc&secret=f994680e2fd34956888477b7176ef79d&js_code=".$code."&grant_type=authorization_code";
  • 身份检测
$token = Request::header('token');
        $vars = Cache::get($token);
        if(!$vars){
            return 'token无效';
        }else{
            return $vars;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值