fix: use WeChat profile authorization login
这个提交包含在:
@@ -65,31 +65,6 @@ Page({
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
uploadAvatar: function (filePath) {
|
|
||||||
var ext = 'jpg'
|
|
||||||
var match = String(filePath).match(/\.([a-zA-Z0-9]+)$/)
|
|
||||||
if (match && match[1]) ext = match[1].toLowerCase()
|
|
||||||
var contentType = ext === 'png' ? 'image/png' : 'image/jpeg'
|
|
||||||
return http.post('/api/v1/user/avatar/upload-url', {
|
|
||||||
ext: ext,
|
|
||||||
content_type: contentType
|
|
||||||
}).then(function (data) {
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
wx.uploadFile({
|
|
||||||
url: data.upload_url,
|
|
||||||
filePath: filePath,
|
|
||||||
name: 'file',
|
|
||||||
header: { 'Content-Type': contentType },
|
|
||||||
success: function (res) {
|
|
||||||
if (res.statusCode >= 200 && res.statusCode < 300) resolve(data.public_url)
|
|
||||||
else reject({ message: '头像上传失败' })
|
|
||||||
},
|
|
||||||
fail: function () { reject({ message: '头像上传失败' }) }
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
onGetPhoneNumber: function (e) {
|
onGetPhoneNumber: function (e) {
|
||||||
var self = this
|
var self = this
|
||||||
if (!e.detail || !e.detail.code) {
|
if (!e.detail || !e.detail.code) {
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ HTTP 触发器或函数 URL 需要透传:
|
|||||||
- `POST /api/v1/auth/refresh`
|
- `POST /api/v1/auth/refresh`
|
||||||
- `GET /api/v1/user/profile`
|
- `GET /api/v1/user/profile`
|
||||||
- `PUT /api/v1/user/profile`
|
- `PUT /api/v1/user/profile`
|
||||||
- `POST /api/v1/user/avatar/upload-url`
|
|
||||||
- `POST /api/v1/user/phone`
|
- `POST /api/v1/user/phone`
|
||||||
- `POST /api/v1/device/bind`
|
- `POST /api/v1/device/bind`
|
||||||
- `POST /api/v1/device/unbind`
|
- `POST /api/v1/device/unbind`
|
||||||
|
|||||||
+1
-13
@@ -23,16 +23,4 @@ function getObjectUrl(key, expiresSeconds) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPutObjectUrl(key, contentType, expiresSeconds) {
|
module.exports = { getClient, getObjectUrl }
|
||||||
return getClient().getObjectUrl({
|
|
||||||
Bucket: config.cos.bucket,
|
|
||||||
Region: config.cos.region,
|
|
||||||
Key: key,
|
|
||||||
Method: 'PUT',
|
|
||||||
Sign: true,
|
|
||||||
Expires: expiresSeconds || 600,
|
|
||||||
Headers: contentType ? { 'Content-Type': contentType } : undefined
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = { getClient, getObjectUrl, getPutObjectUrl }
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ const { ok, fail } = require('../lib/response')
|
|||||||
const { requireUser } = require('../lib/auth')
|
const { requireUser } = require('../lib/auth')
|
||||||
const { writeLog } = require('../lib/log')
|
const { writeLog } = require('../lib/log')
|
||||||
const { getPhoneNumber } = require('../lib/wechat')
|
const { getPhoneNumber } = require('../lib/wechat')
|
||||||
const { getPutObjectUrl, getObjectUrl } = require('../lib/cos')
|
|
||||||
|
|
||||||
function register(router) {
|
function register(router) {
|
||||||
router.get('/api/v1/user/profile', async ctx => {
|
router.get('/api/v1/user/profile', async ctx => {
|
||||||
@@ -34,20 +33,6 @@ function register(router) {
|
|||||||
return ok({ message: 'success' })
|
return ok({ message: 'success' })
|
||||||
})
|
})
|
||||||
|
|
||||||
router.post('/api/v1/user/avatar/upload-url', async ctx => {
|
|
||||||
const user = await requireUser(ctx)
|
|
||||||
if (!user) return fail(1001, 'invalid_token')
|
|
||||||
const ext = String(ctx.body.ext || 'jpg').replace(/[^a-zA-Z0-9]/g, '').toLowerCase() || 'jpg'
|
|
||||||
const contentType = ctx.body.content_type || (ext === 'png' ? 'image/png' : 'image/jpeg')
|
|
||||||
const key = 'avatars/' + user.user_id + '/' + Date.now() + '.' + ext
|
|
||||||
return ok({
|
|
||||||
key,
|
|
||||||
upload_url: getPutObjectUrl(key, contentType, 600),
|
|
||||||
public_url: getObjectUrl(key, 7 * 24 * 3600),
|
|
||||||
content_type: contentType
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
router.post('/api/v1/user/phone', async ctx => {
|
router.post('/api/v1/user/phone', async ctx => {
|
||||||
const user = await requireUser(ctx)
|
const user = await requireUser(ctx)
|
||||||
if (!user) return fail(1001, 'invalid_token')
|
if (!user) return fail(1001, 'invalid_token')
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户