-
-
Save idkjs/f35688b730a8e16012766a3b8a1292bd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type t; | |
[@bs.module "aws-amplify"] external amplify: t = "default"; | |
module Configure = { | |
let config = Config.ampconfig; | |
[@bs.send] external configure: (t, Config.c) => unit = "configure"; | |
let configure = configure(amplify, config); | |
}; | |
let configure = () => Configure.configure; | |
module CognitoUserSession = { | |
type t = { | |
. | |
"accessToken": string, /* I'm guessing these are all strings */ | |
"idToken": idToken, | |
"refreshToken": token, | |
} | |
and idToken = {. "jwtToken": string} | |
and token = {. "token": string}; | |
}; | |
module Auth = { | |
[@bs.module "aws-amplify"] [@bs.scope "Auth"] | |
// external currentSession: unit => Js.Promise.t(CognitoUserSession.t) = ""; | |
external currentSession: unit => Js.Promise.t(Js.Json.t) = ""; | |
external currentCredentials: unit => Js.Promise.t(Js.Json.t) = ""; | |
}; | |
module Decode = { | |
let decodeJwt = json => | |
Json.Decode.{"jwtToken": json |> field("jwtToken", string)}; | |
let decodeToken = json => | |
Json.Decode.{"token": json |> field("token", string)}; | |
let decodeSession = json => | |
Json.Decode.{ | |
"idToken": json |> field("idToken", decodeJwt), | |
"accessToken": json |> field("accessToken", decodeJwt), | |
"refreshToken": json |> field("refreshToken", decodeToken), | |
}; | |
}; | |
[@genType] | |
let getJwtToken = () => { | |
PromiseMonad.( | |
Auth.currentSession() | |
>>= ( | |
json => { | |
Js.log2("RESPONSE_VALUE_TOKEN_AMPLIFY", json); | |
let session = Decode.decodeSession(json); | |
let jwtToken = session##idToken##jwtToken; | |
// Js.log2("RESPONSE_VALUE_jwtToken_AMPLIFY", jwtToken); | |
return(jwtToken); | |
} | |
) | |
); | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type t; | |
type jwtToken; | |
type auth = { | |
. | |
"region": string, | |
"url": string, | |
"auth" : {. | |
"type_": string, | |
"jwtToken": string, | |
} | |
}; | |
[@bs.module "aws-appsync"] [@bs.new] external makeAWSAppSyncClient: auth => t = "AWSAppSyncClient"; | |
external toString: 'a => string = "%identity"; | |
let config = Config.authconfig; | |
let client = () => { | |
// Js.log(Amplify.getJwtToken); | |
let token = Amplify.getJwtToken() | |
|> Js.Promise.then_(data => | |
data |> Js.log |> Js.Promise.resolve) | |
|> Js.Promise.catch(error => | |
error |> Js.log |> Js.Promise.resolve); | |
let clientOptions = { | |
"url":config##url, | |
"region":config##region, | |
"auth": { | |
"type_":config##authType, | |
"jwtToken":toString(token) | |
}, | |
}; | |
makeAWSAppSyncClient(clientOptions); | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// We've found a bug for you! | |
// /Users/prisc_000/working/CHATAPPS/chat-js-to-re/packages/aws-appsync-chat-re/src/aws/aws/Amplify.re 55:9-25 | |
// 53 ┆ // Js.log2("RESPONSE_VALUE_jwtToken_AMPLIFY", jwtToken); | |
// 54 ┆ | |
// 55 ┆ return(jwtToken); | |
// 56 ┆ } | |
// 57 ┆ ) | |
// This has type: | |
// Js.Promise.t(CognitoUserSession.t) (defined as | |
// Js.Promise.t(CognitoUserSession.t)) | |
// But somewhere wanted: | |
// CognitoUserSession.t (defined as | |
// {. "accessToken": string, "idToken": CognitoUserSession.idToken, | |
// "refreshToken": CognitoUserSession.token}) | |
let getJwtToken = () => { | |
PromiseMonad.( | |
Auth.currentSession() | |
>>= ( | |
session:CognitoUserSession.t => { | |
Js.log2("RESPONSE_VALUE_TOKEN_AMPLIFY", session); | |
// let jwtToken:CognitoUserSession.t = session##idToken##jwtToken; | |
let jwtToken = session##idToken##jwtToken; | |
// Js.log2("RESPONSE_VALUE_jwtToken_AMPLIFY", jwtToken); | |
return(jwtToken); | |
} | |
) | |
); | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"idToken": { | |
"jwtToken": "eyJraWQiOiJ4YTMxdUlLMnpoSU1cL09XdW9VajdsUHFCZUhlRWZoYStaVXJHOUtFaW94ST0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1NTYyZGE2Zi0zNDU5LTQxZmItYmUxYy04ZjY1M2U3OGJlZjkiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tXC9ldS13ZXN0LTFfdTdzT0o1QWxJIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiY29nbml0bzp1c2VybmFtZSI6Imlka2pzIiwiYXVkIjoiMWNtYmE2NjJ2ZGExaWw1Nm9qaDdqcXZqNGwiLCJldmVudF9pZCI6IjgwNjVkMzhiLTMzODMtMTFlOS04NmMwLTM5ODQ3NzhjNDUyMSIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNTUwNDk3NTUwLCJwaG9uZV9udW1iZXIiOiIrMTU1NTU1NTU1NTUiLCJleHAiOjE1NTA1NjgwODAsImlhdCI6MTU1MDU2NDQ4MCwiZW1haWwiOiJhYXJtYW5kLmluYm94QGdtYWlsLmNvbSJ9.O7ld0ssoqxOrGjAxW9a1vE62f5Pm79GbLMYgEaghVFVCuDKDPdNj3PaCAD1agZGfYr9kctqzKnXZVQl8ZIrMjwTO1UDIe5elRgz8R_Uz1AtJHxUPDu5lxzi7CWARpUCgpCuCFSU5gjEDS-bq5KHhaBX70lMwMwptrSXalubYYSTlAy8FvUkqWdne0_2x5GhqXdp8yIPWeWm0Oqw0xXOGx0CkHi8cu5PcwJSfau6Xs5Q31-UXPUd34FkB4_i0WzpyECFuCnPT0rHwztdtO1-0jNsTTkr6T73hSkzdv8x8b2keYl8ExIB6r8PnprNx8eZw-i-Q--JBvZogQxG2Vy1NTA", | |
"payload": { | |
"sub": "5562da6f-3459-41fb-be1c-8f653e78bef9", | |
"email_verified": true, | |
"iss": "https://cognito-idp.eu-west-1.amazonaws.com/eu-west-1_u7sOJ5AlI", | |
"phone_number_verified": false, | |
"cognito:username": "idkjs", | |
"aud": "1cmba662vda1il56ojh7jqvj4l", | |
"event_id": "8065d38b-3383-11e9-86c0-3984778c4521", | |
"token_use": "id", | |
"auth_time": 1550497550, | |
"phone_number": "+15555555555", | |
"exp": 1550568080, | |
"iat": 1550564480, | |
"email": "aarmand.inbox@gmail.com" | |
} | |
}, | |
"refreshToken": { | |
"token": "eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAifQ.VirOYYYoADcsO0S1F4ER9IDK9sbw-3EFdSuolShmJ4C-lwJCfrlS6-slCC58gKjiN-GXkZBH_a9iexF_SPVYgyIY_JA4YcQkKVMDPSLFlJ_HKVBJJpmdnShpiX9L64K_kwKlSDhDoyK0gLJt5-KNxfRenn11OilyslVXOJ-fCIGOgia2e1Uss_96LXaoWAfpe0EJK8L7rvwOt3LwOtKNM-OLuf3T9BCth3sxgHZP19j8pxfaDJKe1mLD3y_5DL5uzbHt2kYhrbrLqrpxQtc87OpeeVmQ9YJndVZu4sXU6xNa48f2kkUvDeztAEGFINvtq9_sivQ3s-5dSeoYh8Kj5Q.4q9UIAuuqp7bMrYq.MirPVRzC8-Lk_Q3E3tJW4M9heBH0FF96S3NXN95MpdnfVG2sOwR2qNElYhe5AB5zQwqdlmoQCpk6H4jm3cmfQgxO7oC6OIIReLstnxkVZl07x7-8iIT9AtM_sDBoRcxZaGzjDoTec_3ZRCQq9BkbEFo8DqvXTDWaUpnOEX3KTyRKp2QXgTDGV0l4aLJHefGkPnlGam1zBQErY84jMGAs5Uigkzst0_Nw_GtwQGkVQiiifsTKMPtePkbPjTkBNWj1uutlNzDgbVzeeeM6BTrFQMRyWDOlaj9JLlHbN2B2pK4GFQ0a9e5JybwDFrE7-Zn4YnOyx5_Ppp2oWwyQkQma073AnCyP4qRqAoyr9gVPbkLq-2f4D9wwKSh5s4x5Xi8hr4SZ-bSEMrmVzlgB4zu7_GRxKZNcUgbnY3f25eolF0Tx_EE7O_ciKO5MuJs8wtZfpXNUeR1_HCTmbAnRP9ZDK7WIgPCmh99Pmp0_GZamIQPnBR5cgqoBVyIdES2nSCjAPOOLlzLLOLtiQ-Dq1kTUJe_6rCZcVc11U2uqcpAe_fivdzU8ycHedEg0SrvaJIRnv9dv3g2eXQI80UnTpeEfxNpJto5fHEvE9ZEYp9xMXOoYCy49PyjZG5RcRoWYPur8cSSQdfp1Dp2dP6l-fF4mx2cLePyStHHenPImBvQcO5AlU6flWxMmMGCva1h-ujbDnKhkjQuWnrijjT3EgE4MNzBFYH56nflFRzEpvONBEReLYO8jSTzZK_B5QReD8KFXO-KX6hmYPLVyMXjcKIho2Dm1XhforUjJeJ80y6wRvW5uK55MdV8t42_sjd1vgf8Pu2W3U8xbcknI8P_HuPcV5QuwS9RsNdaYfigL0q5RQHIUckm55685kQLfvYZLKxnAgSHyAW3zy6csbpdggmJAnF_V8aNufmVJ1YH7hAVot29dtWAYg4zPmodaXqS-GszM_vLx1Y8EK6Wvw9jXjR5zJpZAVYqYF0-m6rLu_LaGaEZKtGVDNCzYIWpfxCHYOpj5kRu9hu1QLhlobn8ieONW9-wOzLCM0Ltsx3yRmhLxmbSCkr85iEhVv_ZpNu4rMlulu_CUvuEWPypM4mY-j2Fc3UDZPEL0csC76ZzU79qhUIWqe818P_y039W4A09WlYRYgsXk93GtvoumQcdJlSw-gzQ-ulABVWbM2fKOZvcKiF9gwcL9WEYdjgzWsZX7jKInKRILDsX3yNW1k350PD4cjC1l4f7d8NCUc43AjlPoe2qhXusfS5KkmCY8wQU4ZMlX9w8.8VQ9Vv_s1za5x_FGdW4LHQ" | |
}, | |
"accessToken": { | |
"jwtToken": "eyJraWQiOiI0cXc3QnIya0JDR0VXUk83ZDRtSXh2VlZwU3JMVkF4a1RMZ0I3Q0VYdnVvPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI1NTYyZGE2Zi0zNDU5LTQxZmItYmUxYy04ZjY1M2U3OGJlZjkiLCJldmVudF9pZCI6IjgwNjVkMzhiLTMzODMtMTFlOS04NmMwLTM5ODQ3NzhjNDUyMSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE1NTA0OTc1NTAsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbVwvZXUtd2VzdC0xX3U3c09KNUFsSSIsImV4cCI6MTU1MDU2ODA4MCwiaWF0IjoxNTUwNTY0NDgwLCJqdGkiOiIzYTU2NTgwMi0wMjVjLTQ3MWYtOTU2MC1lY2I3MzhkYzg1MDQiLCJjbGllbnRfaWQiOiIxY21iYTY2MnZkYTFpbDU2b2poN2pxdmo0bCIsInVzZXJuYW1lIjoiaWRranMifQ.QWZ9XGKs_SPYZnEu5rmLWcUs3VRd2SZWurCn-U0E3A30BKJQDSLoxO4BlbH7vy_NqetA01i7WuKnc8lrcV2bybm2ThqCBfysVYlt7O6JKKu3onfmuxHzPNuZcZGrqNqiZG4yy0OOL67TL2cpOlfQ1EvkJbcJvpKjHyVYizt8SaxTpawOzAdpMXVRpJb-KAiG8NUu-Ka9caBvvZP_UY4a6YjNr-PeSOtQfbrPYgALf_1tEUoZYCFMDZbSDk3CX9VAka3Ty1UXq8PrKRGpLDD2YgKK3E04WNqITHNI8AtvNPbC7QUBaOB6pisYLLCr3m9ic3hSHmtTIjYukMoFu-uAtw", | |
"payload": { | |
"sub": "5562da6f-3459-41fb-be1c-8f653e78bef9", | |
"event_id": "8065d38b-3383-11e9-86c0-3984778c4521", | |
"token_use": "access", | |
"scope": "aws.cognito.signin.user.admin", | |
"auth_time": 1550497550, | |
"iss": "https://cognito-idp.eu-west-1.amazonaws.com/eu-west-1_u7sOJ5AlI", | |
"exp": 1550568080, | |
"iat": 1550564480, | |
"jti": "3a565802-025c-471f-9560-ecb738dc8504", | |
"client_id": "1cmba662vda1il56ojh7jqvj4l", | |
"username": "idkjs" | |
} | |
}, | |
"clockDrift": 0 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module AccessTokenPayload = { | |
type t = { | |
. | |
"sub": string, | |
"event_id": string, | |
"token_use": string, | |
"scope": string, | |
"auth_time": int, | |
"iss": string, | |
"exp": int, | |
"iat": int, | |
"jti": string, | |
"client_id": string, | |
"username": string, | |
}; | |
}; | |
module AccessToken = { | |
type t = { | |
. | |
"jwtToken": string, | |
"payload": AccessTokenPayload.t, | |
}; | |
}; | |
module IDTokenPayload = { | |
type t = { | |
. | |
"sub": string, | |
"email_verified": bool, | |
"iss": string, | |
"phone_number_verified": bool, | |
"cognito_username": string, | |
"aud": string, | |
"event_id": string, | |
"token_use": string, | |
"auth_time": int, | |
"phone_number": string, | |
"exp": int, | |
"iat": int, | |
"email": string, | |
}; | |
}; | |
module IDToken = { | |
type t = { | |
. | |
"jwtToken": string, | |
"payload": IDTokenPayload.t, | |
}; | |
}; | |
module RefreshToken = { | |
type t = { | |
. | |
"token": string, | |
}; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment