mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-10 02:54:15 +00:00
59 lines
1.7 KiB
JavaScript
Executable File
59 lines
1.7 KiB
JavaScript
Executable File
import axios from "axios"
|
|
|
|
export default class VRCApi {
|
|
static base_api_hostname = "https://api.vrchat.cloud/api/1"
|
|
|
|
static get interface() {
|
|
return axios.create({
|
|
baseURL: VRCApi.base_api_hostname,
|
|
headers: {
|
|
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.142.86 Safari/537.36",
|
|
}
|
|
})
|
|
}
|
|
|
|
static async auth({ username, password }, access_token) {
|
|
username = encodeURIComponent(username)
|
|
password = encodeURIComponent(password)
|
|
|
|
let headers = {
|
|
"Authorization": `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`
|
|
}
|
|
|
|
if (access_token) {
|
|
delete headers["Authorization"]
|
|
headers["Cookie"] = `${access_token}`
|
|
}
|
|
|
|
const response = await VRCApi.interface({
|
|
method: "GET",
|
|
url: "/auth/user",
|
|
headers,
|
|
})
|
|
|
|
if (!access_token && response.headers["set-cookie"]) {
|
|
response.data.cookie = response.headers["set-cookie"][0].split(";")[0]
|
|
}
|
|
|
|
return response.data
|
|
}
|
|
|
|
static async verifyOtp({ type, code }, access_token) {
|
|
const response = await VRCApi.interface({
|
|
method: "POST",
|
|
url: `/auth/twofactorauth/${type}/verify`,
|
|
data: {
|
|
code: code
|
|
},
|
|
headers: {
|
|
"Cookie": `${access_token}`
|
|
},
|
|
})
|
|
|
|
if (!access_token && response.headers["set-cookie"]) {
|
|
response.data.cookie = response.headers["set-cookie"][0].split(";")[0]
|
|
}
|
|
|
|
return response.data
|
|
}
|
|
} |