38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
import {BaseTokenManager} from "../base/baseTokenManager.js";
|
|
import {Requester} from "../utils/requester.js";
|
|
|
|
export class TikTokTokenManager extends BaseTokenManager {
|
|
|
|
constructor({filepath, clientKey, clientSecret}) {
|
|
super(filepath);
|
|
this.clientKey = clientKey;
|
|
this.clientSecret = clientSecret;
|
|
}
|
|
|
|
async renew() {
|
|
let url = `https://www.tiktok.com/v2/auth/authorize?client_key=${this.clientKey}&response_type=code&scope=user.info.basic,video.list&redirect_uri=https://the-jailor.naaturel.be/oauth&state=SOME_RANDOM_STRING`
|
|
let response = await Requester.doGetRequest(url);
|
|
|
|
let userCode = response.code; //Might not be correct, please update
|
|
|
|
url = "https://open.tiktokapis.com/v2/oauth/token/";
|
|
let headers = {
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
"Cache-Control": "no-cache"
|
|
}
|
|
|
|
let params = {
|
|
"client_key": this.clientKey,
|
|
"client_secret": this.clientSecret,
|
|
"code": userCode,
|
|
"grant_type": "authorization_code",
|
|
"redirect_uri": "https://the-jailor.naaturel.be/oauth"
|
|
}
|
|
|
|
let data = await Requester.doPostRequest(url, headers, params);
|
|
let userId = data.open_id;
|
|
let token = data.access_token;
|
|
|
|
//Update token registry
|
|
}
|
|
} |