增加二维码登录

This commit is contained in:
binaryify
2020-12-31 15:26:18 +08:00
parent bf50fa65eb
commit 77775b25f5
9 changed files with 195 additions and 21 deletions
+34
View File
@@ -0,0 +1,34 @@
module.exports = async (query, request) => {
const data = {
key: query.key,
type: 1,
}
try {
let result = await request(
'POST',
`https://music.163.com/weapi/login/qrcode/client/login`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
result = {
status: 200,
body: {
...result.body,
cookie: result.cookie.join(';'),
},
cookie: result.cookie,
}
return result
} catch (error) {
return {
status: 200,
body: {},
cookie: result.cookie,
}
}
}
+18
View File
@@ -0,0 +1,18 @@
const QRCode = require('qrcode')
module.exports = (query, request) => {
return new Promise(async (resolve) => {
const url = `https://music.163.com/login?codekey=${query.key}`
return resolve({
code: 200,
status: 200,
body: {
code: 200,
data: {
qrurl: url,
qrimg: query.qrimg ? await QRCode.toDataURL(url) : '',
},
},
})
})
}
+26
View File
@@ -0,0 +1,26 @@
module.exports = async (query, request) => {
const data = {
type: 1,
}
const result = await request(
'POST',
`https://music.163.com/weapi/login/qrcode/unikey`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
return {
status: 200,
body: {
data: {
...result.body,
code: 200,
},
},
cookie: result.cookie,
}
}
+24 -19
View File
@@ -1,21 +1,26 @@
// 登录状态
module.exports = (query, request) => {
return request(
'GET',
`https://music.163.com`,
{},
{ cookie: query.cookie, proxy: query.proxy, realIP: query.realIP },
).then((response) => {
try {
let profile = eval(`(${/GUser\s*=\s*([^;]+);/.exec(response.body)[1]})`)
let bindings = eval(`(${/GBinds\s*=\s*([^;]+);/.exec(response.body)[1]})`)
response.body = { code: 200, profile: profile, bindings: bindings }
return response
} catch (err) {
response.status = 301
response.body = { code: 301 }
return Promise.reject(response)
module.exports = async (query, request) => {
const data = {}
let result = await request(
'POST',
`https://music.163.com/weapi/w/nuser/account/get`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
if (result.body.code === 200) {
result = {
status: 200,
body: {
data: {
...result.body,
},
},
cookie: result.cookie,
}
})
}
return result
}