uni-app 一键登录要求apikey但官方已经取消
uni-app 一键登录要求apikey但官方已经取消
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 | HBuilderX |
操作步骤:
调用
const res = await uniCloud.getPhoneNumber({
provider: 'univerify',
appid: 'UNIFAED04E', // DCloud appid,不同于callFunction方式调用,使用云函数Url化需要传递DCloud appid参数
access_token: access_token,
openid: openid
})
预期结果:
可以正常返回
# 实际结果:
提示要提供apikey
bug描述:
调用
const res = await uniCloud.getPhoneNumber({
provider: 'univerify',
appid: 'UNIFAED04E', // DCloud appid,不同于callFunction方式调用,使用云函数Url化需要传递DCloud appid参数
access_token: access_token,
openid: openid
})
提示要提供apikey
连的云端云函数吗?重新上传一下看看?
我也碰到这个问题,随便传提示别的错,是什么鬼啊,新的账号后台也没有apiKey了啊
我在使用 uni-id用户体系也碰到这个问题了,官方文档云端配置config.json的说明里service.univerify下只有appid,没有apiKey了,但跑一键登录时还会弹窗提示[uni-id-io]: Missing config param: service.univerify.apiKey。请问该怎么解决?我不用uni-id,自己写的一键登录就能正常运行。
重新上传了一下uni-id-io就好了
如下插件需要升级后才不会检查apiKey、apiSecret必填,如果使用uni-id公共模块需要更新到3.3.31版本,如果使用uni-id-pages需要更新到1.1.17版本,如果使用了uni-starter需要更新到2.1.6版本
在 uni-app
中,一键登录功能通常依赖于第三方服务提供商的 API,例如阿里云、腾讯云、或其他身份验证服务。如果你提到的 apikey
是指这些第三方服务提供商的 API 密钥,而官方已经取消了对 apikey
的支持,那么你可能需要采取以下步骤来解决问题:
1. 确认官方文档
首先,确保你查阅了 uni-app
官方文档和相关服务提供商的文档,了解最新的接口要求和配置方式。官方文档通常会提供最新的集成指南和配置说明。
2. 使用新的认证方式
如果服务提供商已经取消了 apikey
的认证方式,可能已经引入了新的认证机制,例如 OAuth 2.0、JWT 等。你需要按照新的认证流程进行配置。
3. 联系服务提供商
如果你无法找到相关的文档或配置说明,建议直接联系服务提供商的客服或技术支持,获取最新的集成指南。
4. 使用其他服务
如果你无法解决当前服务的问题,可以考虑使用其他支持 uni-app
的一键登录服务。uni-app
支持多种第三方登录方式,例如微信登录、QQ 登录、Apple 登录等。
5. 自定义登录功能
如果第三方服务无法满足你的需求,你可以考虑自定义登录功能,例如通过短信验证码、邮箱验证等方式实现用户登录。
示例:使用短信验证码登录
以下是一个简单的短信验证码登录的示例代码:
// 发送短信验证码
function sendSmsCode(phoneNumber) {
uni.request({
url: 'https://your-api-endpoint/send-sms',
method: 'POST',
data: {
phone: phoneNumber
},
success: (res) => {
console.log('短信验证码发送成功', res.data);
},
fail: (err) => {
console.error('短信验证码发送失败', err);
}
});
}
// 验证短信验证码
function verifySmsCode(phoneNumber, code) {
uni.request({
url: 'https://your-api-endpoint/verify-sms',
method: 'POST',
data: {
phone: phoneNumber,
code: code
},
success: (res) => {
console.log('短信验证码验证成功', res.data);
// 登录成功后的操作
},
fail: (err) => {
console.error('短信验证码验证失败', err);
}
});
}