mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2026-10-24 00:21:23 +08:00
fix: 修复空 cookie 对象处理
This commit is contained in:
@@ -27,7 +27,7 @@ moduleFiles.forEach((file) => {
|
||||
const cookie =
|
||||
typeof data.cookie === 'string'
|
||||
? cookieToJson(data.cookie)
|
||||
: data.cookie || {}
|
||||
: data.cookie
|
||||
|
||||
return fileModule(
|
||||
{
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
const QRCode = require('qrcode')
|
||||
const { generateChainId } = require('../util/index')
|
||||
const { generateChainId, hasCookie } = require('../util/index')
|
||||
|
||||
module.exports = (query) => {
|
||||
return new Promise(async (resolve) => {
|
||||
const platform = query.platform || 'pc'
|
||||
const cookie = query.cookie || ''
|
||||
const cookie = hasCookie(query.cookie) ? query.cookie : ''
|
||||
|
||||
// 构建基础URL
|
||||
let url = `https://music.163.com/login?codekey=${query.key}`
|
||||
|
||||
+7
-2
@@ -1,18 +1,23 @@
|
||||
// 听歌打卡
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
const { hasCookie } = require('../util/index')
|
||||
const { APP_CONF } = require('../util/config.json')
|
||||
const DOMAIN = APP_CONF.clDomian
|
||||
module.exports = async (query, request) => {
|
||||
// 注入 os=osx 的 cookie
|
||||
let cookie = query.cookie || ''
|
||||
let cookie = hasCookie(query.cookie)
|
||||
? query.cookie
|
||||
: process.env.NETEASE_COOKIE || ''
|
||||
if (typeof cookie === 'object') {
|
||||
cookie = Object.assign({ os: 'osx' }, cookie)
|
||||
} else if (typeof cookie === 'string') {
|
||||
if (cookie.indexOf('os=') > -1) {
|
||||
cookie = cookie.replace(/os=[^;]+/g, 'os=osx')
|
||||
} else {
|
||||
} else if (cookie) {
|
||||
cookie = cookie + '; os=osx'
|
||||
} else {
|
||||
cookie = 'os=osx'
|
||||
}
|
||||
} else {
|
||||
cookie = 'os=osx'
|
||||
|
||||
@@ -13,6 +13,7 @@ const {
|
||||
buildMetaJson,
|
||||
doUpload,
|
||||
} = require('../util/ncbl')
|
||||
const { hasCookie } = require('../util/index')
|
||||
|
||||
module.exports = async (query, request) => {
|
||||
// --- 参数校验 ---
|
||||
@@ -32,7 +33,9 @@ module.exports = async (query, request) => {
|
||||
const sourceName = query.source || 'list'
|
||||
|
||||
// --- 解析认证上下文 ---
|
||||
const rawCookie = query.cookie || ''
|
||||
const rawCookie = hasCookie(query.cookie)
|
||||
? query.cookie
|
||||
: process.env.NETEASE_COOKIE || ''
|
||||
const cookieObj = parseCookie(rawCookie)
|
||||
cookieObj.os = 'pc'
|
||||
const ctx = extractContext(cookieObj)
|
||||
|
||||
@@ -103,6 +103,15 @@ module.exports = {
|
||||
return obj
|
||||
},
|
||||
|
||||
hasCookie(cookie) {
|
||||
if (typeof cookie === 'string') return cookie.length > 0
|
||||
return (
|
||||
cookie !== null &&
|
||||
typeof cookie === 'object' &&
|
||||
Object.keys(cookie).length > 0
|
||||
)
|
||||
},
|
||||
|
||||
cookieObjToString(cookie) {
|
||||
// 优化:使用预绑定的keys函数和for循环
|
||||
const cookieKeys = keys(cookie)
|
||||
@@ -226,6 +235,8 @@ const cookieToJsonOptimized = (function() {
|
||||
function getCookieValue(cookieStr, name) {
|
||||
if (!cookieStr) return ''
|
||||
|
||||
if (typeof cookieStr === 'object') return cookieStr[name] || ''
|
||||
|
||||
const cookies = '; ' + cookieStr
|
||||
const parts = cookies.split('; ' + name + '=')
|
||||
if (parts.length === 2) return parts.pop().split(';').shift()
|
||||
|
||||
+5
-1
@@ -1,7 +1,11 @@
|
||||
const { hasCookie } = require('./index')
|
||||
|
||||
const createOption = (query, crypto = '', checkToken = false) => {
|
||||
return {
|
||||
crypto: query.crypto || crypto || '',
|
||||
cookie: query.cookie || process.env.NETEASE_COOKIE,
|
||||
cookie: hasCookie(query.cookie)
|
||||
? query.cookie
|
||||
: process.env.NETEASE_COOKIE,
|
||||
ua: query.ua || '',
|
||||
proxy: query.proxy,
|
||||
realIP: query.realIP,
|
||||
|
||||
Reference in New Issue
Block a user