47 lines
1.5 KiB
JavaScript
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
|
|
}
|