Panel terminé + Refresh token auto

This commit is contained in:
Zachary Guénot
2023-05-11 00:51:59 +02:00
parent 8846299424
commit 6bc5e67cbc
4 changed files with 15 additions and 13 deletions

6
app.js
View File

@@ -22,10 +22,8 @@ const writeEnv = require('./utils/writeEnv')
let client_id = process.env.TWITCH_APP_ID
let client_secret = process.env.TWITCH_APP_SECRET
let user_access_token = process.env.TWITCH_USER_ACCESS_TOKEN
let user_name = process.env.TWITCH_USER_USERNAME
let channel_access_token = process.env.TWITCH_CHANNEL_ACCESS_TOKEN
let channel_name = process.env.TWITCH_CHANNEL_USERNAME
let channel_reward_name = process.env.TWITCH_CHANNEL_REWARD_NAME
@@ -109,7 +107,7 @@ clientChatBot.on('connect', async connection => {
console.log('Twitch ChatBot WebSocket Connected !')
// Check if the user access token is still valid
//[user_access_token, user_name] = await checkUser(user_access_token)
let [user_access_token, user_name] = await checkUser(process.env.TWITCH_USER_ACCESS_TOKEN)
// Authenticate to Twitch IRC and join channel
connection.sendUTF('CAP REQ :twitch.tv/commands twitch.tv/membership twitch.tv/tags')
@@ -158,7 +156,7 @@ const clientEventSub = new WebSocketClient().on('connect', async connection => {
console.log('Twitch EventSub WebSocket Connected !')
// Check if the channel access token is still valid
//[channel_access_token, channel_name] = await checkChannel(channel_access_token)
let [channel_access_token, channel_name] = await checkChannel(process.env.TWITCH_CHANNEL_ACCESS_TOKEN)
connection.on('message', async message => {
if (message.type === 'utf8') {

View File

@@ -7,14 +7,16 @@ const writeEnv = require('./writeEnv')
let client_id = process.env.TWITCH_APP_ID
let client_secret = process.env.TWITCH_APP_SECRET
module.exports = async function (channel_access_token) {
let channel_refresh_token = ''
module.exports = async function (access_token) {
// Check if channel_access_token is valid
if (!await validateToken(channel_access_token)) {
if (!await validateToken(access_token)) {
// If not, refresh it
[channel_access_token, channel_refresh_token] = await refreshToken(client_id, client_secret, channel_access_token)
let result = await refreshToken(client_id, client_secret, access_token)
if (result.status) return `Can't refresh channel_access_token: ${result.message}`
let [channel_access_token, channel_refresh_token] = result
writeEnv('TWITCH_CHANNEL_ACCESS_TOKEN', channel_access_token)
writeEnv('TWITCH_CHANNEL_REFRESH_TOKEN', channel_refresh_token)

View File

@@ -7,14 +7,16 @@ const writeEnv = require('./writeEnv')
let client_id = process.env.TWITCH_APP_ID
let client_secret = process.env.TWITCH_APP_SECRET
module.exports = async function (user_access_token) {
let user_refresh_token = ''
module.exports = async function (access_token) {
// Check if user_access_token is valid
if (!await validateToken(user_access_token)) {
if (!await validateToken(access_token)) {
// If not, refresh it
[user_access_token, user_refresh_token ] = await refreshToken(client_id, client_secret, user_access_token)
let result = await refreshToken(client_id, client_secret, access_token)
if (result.status) return `Can't refresh user_access_token: ${result.message}`
let [user_access_token, user_refresh_token] = result
writeEnv('TWITCH_USER_ACCESS_TOKEN', user_access_token)
writeEnv('TWITCH_USER_REFRESH_TOKEN', user_refresh_token)

View File

@@ -9,5 +9,5 @@ module.exports = async function (client_id, client_secret, refresh_token) {
}).then(response => {
//console.log(response.data)
if (response.data.token_type === 'bearer') return [response.data.access_token, response.data.refresh_token]
}).catch(error => { console.log(error.response.data) })
}).catch(error => { return error.response.data })
}