微信小程序通过非登录(获取用户信息和code)的方式获取token

# token获取方式有两种:

  • 用户登录成功后后台返回token,一般会把返回的token缓存起来
  • 通过用户授权获取用户的相关信息和code等参数,后台提供接口将这些参数传进去,就可以返回token
    接下来要说的就是第二种方式获取token,一般在微信支付 创建订单的时候需要用到token

在支付页面的支付方法里写获取token方法

支付页面的index.js文件

const token=wx.getStorageSync("token");
if(!token){
//跳转到授权页面
	wx.navigateTo({
		url:'/page/auth/index'
})
return ;
}
授权页面wxml

<button open-type="getUserInfo" bindgetuserinfo="handleGetUserInfo">授权</button>

授权页面的js文件

handleGetUserInfo(e){
try{
//获取用户信息
 const {encrypeData,rawData,iv,signature}=e.detail
 //获取小程序登录成功后的code
 let code
 wx.login({
	timeout:10000,
	success:(res)=>{
 		code =res.code;
	}


})
const loginParams={encrypeData,rawData,iv,signature,code};
// 发送请求 获取用户的token
wx.request({
  url: '/users/wxlogin', //仅为示例,并非真实的接口地址
  data: loginParams,
  method:'post',
  success (res) {
  //获取返回的token
    console.log(res.token)
    // 存入缓存中
    wx.setStorageSync('token',res.token);
    // 跳转到上一个页面
    wx.navigateBack({
		delta:1
	})
  }
})


}catch(error){
console.log(error)
}
}

你可能感兴趣的:(小程序)