小程序需要获取用户的openid,需要使用到wx.login获取code,然后发送code到服务器,这里是使用node+koa以code换取openid存储到数据库
小程序代码:
//index.js //获取应用实例 const app = getApp() Page({ getToken(){ wx.login({ success:(res)=>{ if(res.code){ wx.request({ url: 'http://localhost:3000/v1/token', data:{ account:res.code, type:100 }, method:"post", success:(respon)=>{ console.log(respon) } }) } } }) } })
node+koa代码:
router.post('/', async (ctx) => { const { type, account, secret } = ctx.request.body; let token; switch (type) { //小程序登陆 case LoginType.USER_MINI_PROGRAM: // token = await WXManager.codeToken(account) token = await getToken(account, ctx); break; //邮箱登陆 case LoginType.USER_EMAIL: token = await emailLogin(account, secret, ctx) break; //手机登陆 case LoginType.USER_MOBILE: break; //其他 default: const error = new global.errs(400, '没有响应的类型处理', 400); throw error; break; } ctx.body = { token } })
async function getToken(code, ctx) { let url = `https://api.weixin.qq.com/sns/jscode2session?appid=你的appid&secret=你的secret&js_code=${code}&grant_type=authorization_code` const user = await axios.get(url) console.log(user.data.openid) return user.data.openid }
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接