@@ -4,6 +4,7 @@ import FormData from 'form-data';
44import db from './db' ;
55import config from '../configs/config' ;
66import { generateCodeChallenge , generateRandomState } from './generatePKCE' ;
7+ import AuthorizationToken from '@entities/AuthorizationToken' ;
78
89export function generateAuthorizeUrl ( ) : string {
910 const envConfig = config [ db . settings . env ] ;
@@ -47,4 +48,26 @@ export async function getAccessToken(code: string, state: string | undefined) {
4748 form . append ( 'code_challenge' , codeChallenge . codeChallenge ) ;
4849 }
4950 return await axios . post ( BB2_ACCESS_TOKEN_URL , form , { headers : form . getHeaders ( ) } ) ;
51+ }
52+
53+ export async function refreshAccessToken ( refreshToken : string ) {
54+ const envConfig = config [ db . settings . env ] ;
55+
56+ const BB2_ACCESS_TOKEN_URL = envConfig . bb2BaseUrl + '/' + db . settings . version + '/o/token/' ;
57+
58+ const tokenResponse = await axios ( {
59+ method : 'post' ,
60+ url : BB2_ACCESS_TOKEN_URL ,
61+ auth : {
62+ username : envConfig . bb2ClientId ,
63+ password : envConfig . bb2ClientSecret
64+ } ,
65+ params : {
66+ 'grant_type' : 'refresh_token' ,
67+ 'client_id' : envConfig . bb2ClientId ,
68+ 'refresh_token' : refreshToken
69+ }
70+ } ) ;
71+
72+ return new AuthorizationToken ( tokenResponse . data ) ;
5073}
0 commit comments