38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
require('dotenv').config()
|
|
|
|
const dbRefreshToken = require('./dbRefreshToken')
|
|
const validateToken = require('./validateToken')
|
|
const refreshToken = require('./refreshToken')
|
|
const writeEnv = require('./writeEnv')
|
|
|
|
let client_id = process.env.TWITCH_APP_ID
|
|
let client_secret = process.env.TWITCH_APP_SECRET
|
|
|
|
module.exports = checkUser = (async (user_access_token) => {
|
|
let result = [user_access_token, '']
|
|
|
|
// Check if user_access_token is valid
|
|
if (!await validateToken(user_access_token)) {
|
|
let user_refresh_token = await dbRefreshToken('get', 'user')
|
|
if (user_refresh_token.error) return user_refresh_token.error
|
|
|
|
result = await refreshToken(client_id, client_secret, user_refresh_token)
|
|
|
|
if (result.status) return result = ['no_refresh', result.message]
|
|
else {
|
|
let [user_access_token, user_refresh_token] = result
|
|
writeEnv('TWITCH_USER_ACCESS_TOKEN', user_access_token)
|
|
writeEnv('TWITCH_USER_REFRESH_TOKEN', user_refresh_token)
|
|
|
|
await dbRefreshToken('update', 'user', user_refresh_token)
|
|
|
|
let user_name = await getUserInfo(client_id, user_access_token, 'login')
|
|
writeEnv('TWITCH_USER_NAME', user_name)
|
|
}
|
|
} else {
|
|
let user_name = await getUserInfo(client_id, user_access_token, 'login')
|
|
result = [user_access_token, user_name]
|
|
writeEnv('TWITCH_USER_NAME', user_name)
|
|
}
|
|
return result
|
|
}) |