用阿里云的云函数,做微信授权登录,用的是HBuild X 3.7.3,以下为代码和报错,感谢解答,如果有表述不清的地方也欢迎指正。
云函数:
'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ', event)
let res = await uniCloud.httpclient.request({
url: `https://api.weixin.qq.com/sns/jscode2session`,
data: {
appid: '已填',
secret: '已填',
js_code: event.code,
grant_type: 'authorization_code'
},
dataType: 'json'
});
console.log('res', res);
let jwt = require('jsonwebtoken');
let mySecret = 'lv5n7okh99398gwax27m3asmq285m6xr';
let token = jwt.sign({
openid: res.data.openid,
session_key: res.data.session_key
}, mySecret, {
expiresIn: '1d'
});
return {
token
};
}
客户端函数
<template>
<view><button class="button" @click="login">微信授权登录</button></view>
</template>
<script>
const db = uniCloud.database();
export default {
methods: {
async login() {
let token = uni.getStorageSync('token');
if (!token) {
let res = await uni.login({
provider: 'weixin',
onlyAuthorize: true
});
console.log(res[1].code);
let code = res[1].code;
let res2 = await uniCloud.callFunction({
name: 'getToken',
data: { code }
});
console.log(res2);
token = res2.result.token;
uni.setStorageSync('token', token);
console.log('token', token);
}
}
}
};
</script>
(本地云函数)报错如下:
(云端云函数)报错如下: