@@ -5,6 +5,7 @@ SPDX-License-Identifier: Apache-2.0
5
5
*/
6
6
7
7
import { GNAPClient } from '@trustbloc/wallet-sdk' ;
8
+ import { getGnapKeyPair } from '@/mixins' ;
8
9
9
10
export async function gnapRequestAccess (
10
11
signer ,
@@ -45,3 +46,58 @@ export async function gnapContinue(signer, gnapAuthServerURL, interactRef, acces
45
46
const resp = await gnapClient . continue ( gnapContinueReq , accessToken ) ;
46
47
return resp ;
47
48
}
49
+
50
+ export async function initiateGnapAuth ( store , router ) {
51
+ const gnapAccessTokens = await store . getters [ 'getGnapAccessTokenConfig' ] ;
52
+ const gnapAuthServerURL = store . getters . hubAuthURL ;
53
+ const walletWebUrl = store . getters . walletWebUrl ;
54
+ const gnapKeyPair = await getGnapKeyPair ( ) ;
55
+ console . log ( 'gnapKeyPair' , gnapKeyPair ) ;
56
+ const signer = { SignatureVal : gnapKeyPair } ;
57
+ console . log ( 'signer' , signer . SignatureVal ) ;
58
+ const clientNonceVal = ( Math . random ( ) + 1 ) . toString ( 36 ) . substring ( 7 ) ;
59
+
60
+ console . log (
61
+ 'requestAccess with:' ,
62
+ JSON . stringify (
63
+ {
64
+ ...signer ,
65
+ gnapAccessTokens,
66
+ gnapAuthServerURL,
67
+ walletWebUrl,
68
+ clientNonceVal,
69
+ } ,
70
+ null ,
71
+ 2
72
+ )
73
+ ) ;
74
+
75
+ const resp = await gnapRequestAccess (
76
+ signer ,
77
+ gnapAccessTokens ,
78
+ gnapAuthServerURL ,
79
+ walletWebUrl ,
80
+ clientNonceVal
81
+ ) ;
82
+ console . log ( 'resp' , resp ) ;
83
+ // If user have already signed in then just redirect
84
+ if ( resp . data . access_token ) {
85
+ const accessToken = resp . data . access_token [ 0 ] . value ;
86
+ const subjectId = resp . data . subject . sub_ids [ 0 ] . id ;
87
+ console . log ( '111 new accessToken' , accessToken ) ;
88
+ console . log ( '111 new subjectId' , subjectId ) ;
89
+ store . dispatch ( 'updateSessionToken' , accessToken ) ;
90
+ store . dispatch ( 'updateSubjectId' , subjectId ) ;
91
+ router . push ( { name : 'DashboardLayout' } ) ;
92
+ return ;
93
+ }
94
+ const respMetaData = {
95
+ uri : resp . data . continue . uri ,
96
+ continue_access_token : resp . data . continue . access_token ,
97
+ finish : resp . data . interact . finish ,
98
+ clientNonceVal : clientNonceVal ,
99
+ } ;
100
+ await store . dispatch ( 'updateGnapReqAccessResp' , respMetaData ) ;
101
+ console . log ( 'redirect to:' , resp . data . interact . redirect ) ;
102
+ return resp . data . interact . redirect ;
103
+ }
0 commit comments