@@ -3,13 +3,20 @@ import AWS from "aws-sdk";
3
3
import { promptMfaModal } from "../modals" ;
4
4
5
5
function getAWSCredentials ( profile , program , screen ) {
6
- let codeFn ;
6
+ // Define tokenCodeFn for SharedIniFileCredentials:
7
+ // Arguments:
8
+ // serial - mfa device serial, not used as code is supplied manually
9
+ // callback - callback function which takes (err, token) as arguments. Here err isn't used as token is entered manually
10
+ let mfaCodeFn ;
7
11
if ( program . mfa ) {
8
- codeFn = ( serial , callback ) => callback ( null , program . mfa ) ;
12
+ // If mfa token defined in cli options, supply to callback and run immediately
13
+ mfaCodeFn = ( serial , callback ) => callback ( null , program . mfa ) ;
9
14
} else if ( screen ) {
10
- codeFn = ( serial , callback ) => promptMfaModal ( callback , screen ) ;
15
+ // promptMfaModal allows user to enter token on screen, and runs callback on entry
16
+ mfaCodeFn = ( serial , callback ) => promptMfaModal ( callback , screen ) ;
11
17
} else {
12
- codeFn = ( ) =>
18
+ // If using Guardian and --mfa not supplied
19
+ mfaCodeFn = ( ) =>
13
20
console . error (
14
21
"In-tool mfa authentication isn't supported for guardian. Please provide your mfa token via the --mfa option"
15
22
) ;
@@ -19,7 +26,7 @@ function getAWSCredentials(profile, program, screen) {
19
26
process . env . AWS_SDK_LOAD_CONFIG = 1 ;
20
27
return new AWS . SharedIniFileCredentials ( {
21
28
profile,
22
- tokenCodeFn : codeFn ,
29
+ tokenCodeFn : mfaCodeFn ,
23
30
callback : ( err ) => {
24
31
if ( err ) {
25
32
console . error ( `SharedIniFileCreds Error: ${ err } ` ) ;
@@ -37,7 +44,7 @@ function getAWSCredentials(profile, program, screen) {
37
44
if ( process . env . AWS_PROFILE ) {
38
45
return new AWS . SharedIniFileCredentials ( {
39
46
profile : process . env . AWS_PROFILE ,
40
- tokenCodeFn : codeFn ,
47
+ tokenCodeFn : mfaCodeFn ,
41
48
callback : ( err ) => {
42
49
if ( err ) {
43
50
console . error ( `SharedIniFileCreds Error: ${ err } ` ) ;
0 commit comments