index.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. 'use strict';
  2. const crypto = require('crypto')
  3. exports.main = async (event, context) => {
  4. const secret = 'XHB2021198819640123' //密钥,需要和php文件里一致
  5. const hmac = crypto.createHmac('sha256', secret)
  6. let params = event.queryStringParameters
  7. const sign = params.sign
  8. delete params.sign
  9. const signStr = Object.keys(params).sort().map(key => {
  10. return `${key}=${params[key]}`
  11. }).join('&')
  12. hmac.update(signStr);
  13. if(sign!==hmac.digest('hex')){
  14. throw new Error('非法访问')
  15. }
  16. const res = await uniCloud.getPhoneNumber({
  17. appid: '__UNI__BD781B0', // 替换成自己开通一键登录的应用的DCloud appid,使用callFunction方式调用时可以不传(会自动取当前客户端的appid),如果使用云函数URL化的方式访问必须传此参数
  18. provider: 'univerify',
  19. apiKey: '28218195fca6f5993e5fe4ac357a281b', // 在开发者中心开通服务并获取apiKey
  20. apiSecret: 'ee1268e59735aa5fdae6f0df0e9c094a', // 在开发者中心开通服务并获取apiSecret
  21. access_token: event.queryStringParameters.access_token,
  22. openid: event.queryStringParameters.openid
  23. })
  24. if(res.code == 0){
  25. return {code: 1,msg: '获取手机号成功',data:{phoneNumber:res.phoneNumber}}
  26. }else{
  27. return {code: 0,msg: '获取手机号失败'}
  28. }
  29. }