1.获取私钥文件
在云开发控制台(腾讯云控制台),在【环境】-【环境设置】-【登录方式】,单击私钥下载。
2. 获取ticket编写服务端(这里使用云函数)
也可以在自己的服务器编写
// 编写云函数并上传
cloud.init()
const tcb = require('tcb-admin-node');
const app = tcb.init({
env: '环境ID',
credentials: require('私钥文件地址')
});
const customUserId = '自定义唯一ID';
const ticket = app.auth().createTicket(customUserId, {
refresh: 10 * 60 * 1000 // 每十分钟刷新一次登录态, 默认为一小时
});
module.exports.main = function() {
return ticket
}
在云开发(腾讯云控制台)的云函数中找到上传的函数,编辑触发路径
这时在浏览器中直接就可以获取到ticket了。
https://环境ID.service.tcloudbase.com/getTicket
3. web端使用
<script src="https://imgcache.qq.com/qcloud/tcbjs/1.3.5/tcb.js"></script>
<script>
const app = tcb.init({
env: '环境ID'
});
const auth = app.auth();
async function login(){
const loginState = await auth.getLoginState();
if(!loginState){
await fetch('https://环境ID.service.tcloudbase.com/getTicket').then(res=>{
res.text().then(res =>{
auth.signInWithTicket(res).then(res =>{
console.log('登录成功')
});
})
});
}
}
login();
</script>
直接通过下面的请求是无法返回相应的内容的,打印出来仅仅是一个原始的response对象
fetch('云函数触发路径').then(res => console.log(res))
所以在收到response对象后,使用 .text() 来转换成我们想要的内容,如果您返回的是json格式也可以使用 .json() 。
fetch('云函数触发路径').then(res=>{
res.text().then(res =>{
auth.signInWithTicket(res).then(res =>{
console.log('登录成功')
});
})
});