UNI-APP小程序登录功能

小程序登录逻辑


①通过uni.login()接口获取小程序用户的code值

uni.login({
	  success(res) {     // // {errMsg: "login:ok", code: "033vPJhy1W2RH906Y0gy1B5Chy1vPJhO"}
		  console.log(res)  
		if (res.code) {
		  // 发起网络请求
		  wx.request({
			url: 'http://wuxinzhe.top/test/test.php',
			data: {
			  code: res.code 
			}
		  })
		} else {
		  console.log('登录失败!' + res.errMsg)
		}
	 }
})

②服务器端通过调用code2session接口通过code换取session_key(只能用一个code调取一次)和用户的openid
https://api.weixin.qq.com/sns/jscode2session?appid={$appId}&secret={$secret}&js_code={$code}&grant_type=authorization_code
php代码

<?php
$appId="wxaf151ae9618b2911";
$secret="d9ba0f5c57905040d8af7d71aa77af9e";
$code="033VjYWj0hgvmq1KWG0k0G9ZWj0VjYWC";
$url="https://api.weixin.qq.com/sns/jscode2session?appid={$appId}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
// create curl resource
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
//请求接口成功,返回用户的openid和session_key  
//{"session_key":"gwKsCu8np9ps3a89bgnoRQ==","expires_in":7200,"openid":"orwIJ0fjAUInTl-7kGBkdVRw4MKM"}
 
var_dump($output);
//存入session中逻辑处理
//返回给小程序前端
curl_close($ch);
?>

③小程序前端中,收到服务器端返回的信息,自定义登录状态,存入缓存中,uniapp中调用uni.setStorageSync(KEY,DATA)方法.与openid和session_key关联
④每次请求之前,获取缓存中的数据uni.getStorageSync(KEY),携带着状态去请求,服务器端查询openid和session_key,返回业务数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值