From 90195736624013024e201e87e31b95ffab27b2c0 Mon Sep 17 00:00:00 2001 From: Guoguo Date: Thu, 7 May 2026 05:58:41 -0700 Subject: [PATCH] fix: serverless adapter binary body support, hide phone number in register MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Keep body as Buffer instead of utf8 string for multipart/form-data - Set content-length header for multer compatibility - Phone authorization shows '已授权' instead of actual number --- miniprogram/pages/register/register.js | 2 +- server/src/lib/serverless.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/miniprogram/pages/register/register.js b/miniprogram/pages/register/register.js index 4bae382..00ecd92 100644 --- a/miniprogram/pages/register/register.js +++ b/miniprogram/pages/register/register.js @@ -57,7 +57,7 @@ Page({ http.post('/api/v1/user/phone', { code: e.detail.code }).then(function (data) { self.setData({ loading: false, - phone: data.phone || data.pure_phone_number || '已授权' + phone: '已授权' }) wx.showToast({ title: '手机号授权成功', icon: 'success' }) }).catch(function (err) { diff --git a/server/src/lib/serverless.js b/server/src/lib/serverless.js index 4d870c6..09c2af1 100644 --- a/server/src/lib/serverless.js +++ b/server/src/lib/serverless.js @@ -10,7 +10,11 @@ module.exports = function serverless(app) { const url = path + (qsStr ? '?' + qsStr : '') let rawBody = event.body || '' - if (event.isBase64Encoded && rawBody) rawBody = Buffer.from(rawBody, 'base64').toString('utf8') + if (event.isBase64Encoded && rawBody) { + rawBody = Buffer.from(rawBody, 'base64') + } else if (typeof rawBody === 'string') { + rawBody = Buffer.from(rawBody, 'utf8') + } return new Promise((resolve) => { const req = new http.IncomingMessage() @@ -21,6 +25,9 @@ module.exports = function serverless(app) { if (event.requestContext && event.requestContext.sourceIp) { req.headers['x-forwarded-for'] = req.headers['x-forwarded-for'] || event.requestContext.sourceIp } + if (rawBody.length > 0) { + req.headers['content-length'] = String(rawBody.length) + } const res = new http.ServerResponse(req) let body = '' @@ -52,7 +59,7 @@ module.exports = function serverless(app) { res.write = function (chunk) { body += chunk } - if (rawBody) { + if (rawBody.length > 0) { req.push(rawBody) } req.push(null)