Files
yenai-plugin/model/Pixiv/login.js
2024-04-06 19:02:02 +08:00

47 lines
1.5 KiB
JavaScript

import { Config } from "../../components/index.js"
import moment from "moment"
import request from "../../lib/request/request.js"
import md5 from "md5"
const CLIENT_ID = "MOBrBDS8blbauoSck0ZfDbtuzpyT"
const CLIENT_SECRET = "lsACyCD94FhDUtGTXi3QzcFE2uU1hqtDaKeqrdwj"
const HASH_SECRET = "28c1fdd170a5204386cb1313c7077b34f83e4aaf4aa829ce78c231e05b0bae2c"
export const headers = {
"User-Agent": "PixivIOSApp/7.13.3 (iOS 14.6; iPhone13,2)",
"Accept-Language": Config.pixiv.language,
"App-OS": "ios",
"App-OS-Version": "14.6",
"Content-Type": "application/x-www-form-urlencoded",
"Accept": "*/*",
"Connection": "Keep-Alive"
}
export async function login(refresh_token) {
const local_time = moment().format()
let _headers = {
...headers,
"X-Client-Time": local_time,
"X-Client-Hash": md5(`${local_time}${HASH_SECRET}`)
}
const data = {
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
grant_type: "refresh_token",
refresh_token
}
const { response, error } = await request.post("https://oauth.secure.pixiv.net/auth/token", {
data,
headers: _headers
}).then(res => res.json())
if (error) throw new ReplyError(`[Yenai][Pixiv]login Error Response: ${error}`)
if (response.access_token) {
const { id, name, account } = response.user
logger.info(`[Yenai][Pixiv]login ${logger.yellow(`${name}(${id}) @${account}`)} ${logger.green("success")}`)
} else {
logger.error(`[Yenai][Pixiv]login ${logger.red("fail")}`)
}
return response
}