Files
go-garth/garth/tests/cassettes/test_login_success.yaml
2025-09-07 06:38:39 -07:00

761 lines
53 KiB
YAML

interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15
(KHTML, like Gecko) Mobile/15E148
method: GET
uri: https://sso.garmin.com/sso/embed?id=gauth-widget&embedWidget=true&gauthHost=https%3A%2F%2Fsso.garmin.com%2Fsso
response:
body:
string: "<html>\n\t<head>\n\t <title>GAuth Embedded Version</title>\n\t <meta
http-equiv=\"X-UA-Compatible\" content=\"IE=edge;\" />\n\t <style type=\"text/css\">\n\t
\ \t#gauth-widget {border: none !important;}\n\t </style>\n\t</head>\n\t<body>\n\t\t<script
type=\"text/javascript\" src=\"/sso/js/jquery/3.1.1/jquery.min.js?20210319\"></script>\n\n<div>\n\t<pre>\n\t<span>ERROR:
clientId parameter must be specified!!!</span>\n\n\t<span >Usage: https://sso.garmin.com/sso/embed?clientId=&lt;clientId&gt;&amp;locale=&lt;locale&gt;...</span>\n\n\tRequest
parameter configuration options:\n\n\tNAME REQ VALUES
\ DESCRIPTION\n\t------------------
\ --- -------------------------------------------------------
\ ---------------------------------------------------------------------------------------------------\n\tclientId
\ Yes \"MY_GARMIN\"/\"BUY_GARMIN\"/\"FLY_GARMIN\"/ Client
identifier for your web application\n\t \"RMA\"/\"GarminConnect\"/\"OpenCaching\"/etc\n\tlocale
\ Yes \"en\", \"bg\", \"cs\", \"da\", \"de\", \"es\",
\"el\", \"fr\", \"hr\", User's current locale, to display the GAuth login
widget internationalized properly.\n\t \"in\",
\"it\", \"iw\", \"hu\", \"ms\", \"nb\", \"nl\", \"no\", \"pl\", (All the
currently supported locales are listed in the Values section.)\n\t \"pt\",
\"pt_BR\", \"ru\", \"sk\", \"sl\", \"fi\", \"sv\", \"tr\",\n\t \"uk\",
\"th\", \"ja\", \"ko\", \"zh_TW\", \"zh\", \"vi_VN\"\n\tcssUrl No
\ Absolute URL to custom CSS file. Use custom CSS
styling for the GAuth login widget.\n\treauth No
\ true/false (Default value is false) Specify true if
you want to ensure that the GAuth login widget shows up,\n\t even
if the SSO infrastructure remembers the user and would immediately log them
in.\n\t This
is useful if you know a user is logged on, but want a different user to be
allowed to logon.\n\tinitialFocus No true/false (Default
value is true) If you don't want the GAuth login widget
to autofocus in it's \"Email or Username\" field upon initial loading,\n\t
\ then
specify this option and set it to false.\n\trememberMeShown No
\ true/false (Default value is false) Whether the \"Remember
Me\" check box is shown in the GAuth login widget.\n\trememberMeChecked No
\ true/false (Default value is false) Whether the \"Remember
Me\" check box feature is checked by default.\n\tcreateAccountShown No
\ true/false (Default value is true) Whether the \"Don't
have an account? Create One\" link is shown in the GAuth login widget.\n\tsocialEnabled
\ No true/false (Default value is false) If
set to false, do not show any social sign in elements or allow social sign
ins.\n\tlockToEmailAddress No Email address to pre-load and
lock. If specified, the specified email address will
be pre-loaded in the main \"Email\" field in the SSO login form,\n\t as
well as in in the \"Email Address\" field in the \"Forgot Password?\" password
reset form,\n\t and
both fields will be disabled so they can't be changed.\n\t (If
for some reason you want to force re-authentications for a known customer
account, you can make use of this option.)\n\topenCreateAccount No
\ true/false (Default value is false) If set to true,
immediately display the the account creation screen.\n\tdisplayNameShown No
\ true/false (Default value is false) If set to true,
show the \"Display Name\" field on the account creation screen, to allow the
user\n\t to
set their central MyGarmin display name upon account creation.\n\tglobalOptInShown
\ No true/false (Default value is false) Whether
the \"Global Opt-In\" check box is shown on the create account & create social
account screens.\n\t If
set to true these screens will show a \"Sign Up For Email\" check box with
accompanying text\n\t \"I
would also like to receive email about promotions and new products.\"\n\t
\ If
checked, the Customer 2.0 account that is created will have it's global opt-in
flag set to true,\n\t and
Garmin email communications will be allowed.\n\tglobalOptInChecked No
\ true/false (Default value is false) Whether the \"Global
Opt-In\" check box is checked by default.\n\tconsumeServiceTicket No
\ true/false (Default value is true) IF you don't specify
a redirectAfterAccountLoginUrl AND you set this to false, the GAuth login
widget\n\t will
NOT consume the service ticket assigned and will not seamlessly log you into
your webapp.\n\t It
will send a SUCCESS JavaScript event with the service ticket and service url
you can take\n\t and
explicitly validate against the SSO infrastructure yourself.\n\t (By
using casClient's SingleSignOnUtils.authenticateServiceTicket() utility method,\n\t
\ or
calling web service customerWebServices_v1.2 AccountManagementService.authenticateServiceTicket().)\n\tmobile
\ No true/false (Default value is false) Setting
to true will cause mobile friendly views to be shown instead of the tradition
screens.\n\ttermsOfUseUrl No Absolute URL to your custom
terms of use URL. If not specified, defaults to http://www.garmin.com/terms\n\tprivacyStatementUrl
\ No Absolute URL to your custom privacy statement URL. If
not specified, defaults to http://www.garmin.com/privacy\n\tproductSupportUrl
\ No Absolute URL to your custom product support URL. If
not specified, defaults to http://www.garmin.com/us/support/contact\n\tgenerateExtraServiceTicket
\ No true/false (Default value is false) If set
to true, generate an extra unconsumed service ticket.\n\t\t (The
service ticket validation response will include the extra service ticket.)\n\tgenerateTwoExtraServiceTickets
\ No true/false (Default value is false) If set to true,
generate two extra unconsumed service tickets.\n\t\t\t\t\t\t\t\t\t \t\t\t
\ (The service ticket validation response will include the extra service
tickets.)\n\tgenerateNoServiceTicket No true/false (Default value
is false) If you don't want SSO to generate a service
ticket at all when logging in to the GAuth login widget.\n (Useful
when allowing logins to static sites that are not SSO enabled and can't consume
the service ticket.)\n\tconnectLegalTerms No true/false (Default
value is false) Whether to show the connectLegalTerms
on the create account page\n\tshowTermsOfUse No true/false
(Default value is false) Whether to show the showTermsOfUse
on the create account page\n\tshowPrivacyPolicy No true/false
(Default value is false) Whether to show the showPrivacyPolicy
on the create account page\n\tshowConnectLegalAge No true/false
(Default value is false) Whether to show the showConnectLegalAge
on the create account page\n\tlocationPromptShown No true/false
(Default value is false) If set to true, ask the customer
during account creation to verify their country of residence.\n\tshowPassword
\ No true/false (Default value is true) If
set to false, mobile version for createAccount and login screens would hide
the password\n\tuseCustomHeader No true/false (Default value
is false) If set to true, the \"Sign in\" text will be
replaced by custom text. Contact CDS team to set the i18n text for your client
id.\n\tmfaRequired No true/false (Default value is false)
\ Require multi factor authentication for all authenticating
users.\n\tperformMFACheck No true/false (Default value is
false) If set to true, ask the logged in user to pass
a multi factor authentication check. (Only valid for an already logged in
user.)\n\trememberMyBrowserShown No true/false (Default value is
false) Whether the \"Remember My Browser\" check box
is shown in the GAuth login widget MFA verification screen.\n\trememberMyBrowserChecked
\ No true/false (Default value is false) Whether
the \"Remember My Browser\" check box feature is checked by default.\n\tconsentTypeIds\t\t\t\t\tNo\tconsent_types
ids\t\t \t\t\t\t\t\t\t\t multiple consent types ids can be passed as consentTypeIds=type1&consentTypeIds=type2\n\t</pre>\n</div>\n\n\n\t<script>(function(){var
js = \"window['__CF$cv$params']={r:'7f1ac05c5db34620'};_cpo=document.createElement('script');_cpo.nonce='',_cpo.src='/cdn-cgi/challenge-platform/scripts/invisible.js',document.getElementsByTagName('head')[0].appendChild(_cpo);\";var
_0xh = document.createElement('iframe');_0xh.height = 1;_0xh.width = 1;_0xh.style.position
= 'absolute';_0xh.style.top = 0;_0xh.style.left = 0;_0xh.style.border = 'none';_0xh.style.visibility
= 'hidden';document.body.appendChild(_0xh);function handler() {var _0xi =
_0xh.contentDocument || _0xh.contentWindow.document;if (_0xi) {var _0xj =
_0xi.createElement('script');_0xj.innerHTML = js;_0xi.getElementsByTagName('head')[0].appendChild(_0xj);}}if
(document.readyState !== 'loading') {handler();} else if (window.addEventListener)
{document.addEventListener('DOMContentLoaded', handler);} else {var prev =
document.onreadystatechange || function () {};document.onreadystatechange
= function (e) {prev(e);if (document.readyState !== 'loading') {document.onreadystatechange
= prev;handler();}};}})();</script></body>\n</html>\n"
headers:
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Headers:
- Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type,
Access-Control-Request-Method, Access-Control-Request-Headers
Access-Control-Allow-Methods:
- GET,POST,OPTIONS
Access-Control-Allow-Origin:
- https://www.garmin.com
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7f1ac05c5db34620-DFW
Connection:
- keep-alive
Content-Language:
- en
Content-Type:
- text/html;charset=UTF-8
Date:
- Fri, 04 Aug 2023 23:58:58 GMT
NEL:
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=oT4HuH19GyKTBkqXHXwnSmUp1kcqmbthvziWIXEZLe3kQQBobYqW0Qi%2FXSjy%2B2GN5dy3Cs4ZId74RXjz6bteuof9l6R2Qsum28N4Hy0wBm4fbvYMJZUPAeRAda3mHrUW"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Set-Cookie:
- org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE=SANITIZED;
Path=SANITIZED
- __cf_bm=SANITIZED; path=SANITIZED; expires=SANITIZED; domain=SANITIZED; HttpOnly;
Secure; SameSite=SANITIZED
- __cflb=SANITIZED; SameSite=SANITIZED; Secure; path=SANITIZED; expires=SANITIZED;
HttpOnly
- _cfuvid=SANITIZED; path=SANITIZED; domain=SANITIZED; HttpOnly; Secure; SameSite=SANITIZED
Transfer-Encoding:
- chunked
X-Application-Context:
- casServer:cloud,prod,prod-US_1102:0
X-B3-Traceid:
- 0338524d977495f906e0c0e47bda3479
X-Robots-Tag:
- noindex
X-Vcap-Request-Id:
- 8cae38fd-8c5b-4d76-5f53-ed081975bd13
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Cookie:
- __cf_bm=SANITIZED; _cfuvid=SANITIZED; __cflb=SANITIZED; org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE=SANITIZED
User-Agent:
- Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15
(KHTML, like Gecko) Mobile/15E148
referer:
- https://sso.garmin.com/sso/embed?id=gauth-widget&embedWidget=true&gauthHost=https%3A%2F%2Fsso.garmin.com%2Fsso
method: GET
uri: https://sso.garmin.com/sso/signin?id=gauth-widget&embedWidget=true&gauthHost=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&service=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&source=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&redirectAfterAccountLoginUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&redirectAfterAccountCreationUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed
response:
body:
string: "<!DOCTYPE html>\n<html lang=\"en\" class=\"no-js\">\n <head>\n <meta
http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <meta
name=\"viewport\" content=\"width=device-width\" />\n <meta http-equiv=\"X-UA-Compatible\"
content=\"IE=edge;\" />\n <title>GARMIN Authentication Application</title>\n
\ <link href=\"/sso/css/GAuth.css?20210406\" rel=\"stylesheet\" type=\"text/css\"
media=\"all\" />\n\n\t <link rel=\"stylesheet\" href=\"\"/>\n\n <script
type=\"text/javascript\" src=\"/sso/js/jquery/3.1.1/jquery.min.js?20210319\"></script>\n
\ <script type=\"text/javascript\">jQuery.noConflict();</script>\n\t\t<script
type=\"text/javascript\" src=\"/sso/js/jquery-validate/1.16.0/jquery.validate.min.js?20210319\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/jsUtils.js?20210406\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/json2.js\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/consoleUtils.js?20210319\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/postmessage.js?20210319\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/popupWindow.js\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/base.js?20210406\"></script>\n\t\t<script
type=\"text/javascript\" src=\"/sso/js/gigyaUtils.js?20210319\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/login.js?20211102\"></script>\n
\ <script type=\"text/javascript\" src=\"/sso/js/reCaptchaUtil.js?20230706\"></script>\n\n
\ <script>\n var recaptchaSiteKey = null;\n var
reCaptchaURL = \"\\\\\\/sso\\\\\\/reCaptcha?id=gauth-widget\\u0026embedWidget=true\\u0026gauthHost=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed\\u0026service=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed\\u0026source=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed\\u0026redirectAfterAccountLoginUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed\\u0026redirectAfterAccountCreationUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed\";\n
\ var isRecaptchaEnabled = null;\n var recaptchaToken
= null; \n </script>\n <script type=\"text/javascript\">\n
\ var parent_url = \"https:\\/\\/sso.garmin.com\\/sso\\/embed\";\n
\ var status \t\t\t= \"\";\n\t\t\tvar result = \"\";\n\t\t\tvar
clientId\t\t= '';\n\t\t\tvar embedWidget \t= true;\n\t\t\tvar isUsernameDefined
= (false == true) || (false == true);\n\n // Gigya callback to
SocialSignInController for brand new social network users redirects to this
page\n // to popup Create or Link Social Account page, but has
a possibly mangled source parameter\n // where \"?\" is set as
\"<QM>\", so translate it back to \"?\" here.\n parent_url = parent_url.replace('<QM>',
'?');\n var parent_scheme = parent_url.substring(0, parent_url.indexOf(\"://\"));\n
\ var parent_hostname = parent_url.substring(parent_scheme.length
+ 3, parent_url.length);\n if (parent_hostname.indexOf(\"/\") !=
-1) {\n parent_hostname = parent_hostname.substring(0, parent_hostname.indexOf(\"/\"));\n
\ }\n var parentHost \t = parent_scheme + \"://\"
+ parent_hostname;\n\t\t\tvar createAccountConfigURL = '\\/sso\\/createNewAccount?id%3Dgauth-widget%26embedWidget%3Dtrue%26gauthHost%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26service%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26source%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26redirectAfterAccountLoginUrl%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26redirectAfterAccountCreationUrl%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed';\n
\ var socialConfigURL = 'https://sso.garmin.com/sso/socialSignIn?id%3Dgauth-widget%26embedWidget%3Dtrue%26gauthHost%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26service%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26source%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26redirectAfterAccountLoginUrl%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26redirectAfterAccountCreationUrl%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed';\n
\ var gigyaURL = \"https://cdns.gigya.com/js/gigya.js?apiKey=2_R3ZGY8Bqlwwk3_63knoD9wA_m-Y19mAgW61bF_s5k9gymYnMEAtMrJiF5MjF-U7B\";\n\n
\ if (createAccountConfigURL.indexOf('%253A%252F%252F') != -1) {\n
\ \tcreateAccountConfigURL = decodeURIComponent(createAccountConfigURL);\n
\ }\n consoleInfo('signin.html embedWidget: true, createAccountConfigURL:
\\/sso\\/createNewAccount?id%3Dgauth-widget%26embedWidget%3Dtrue%26gauthHost%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26service%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26source%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26redirectAfterAccountLoginUrl%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed%26redirectAfterAccountCreationUrl%3Dhttps%253A%252F%252Fsso.garmin.com%252Fsso%252Fembed,
socialEnabled: true, gigyaSupported: true, socialConfigURL(): https://sso.garmin.com/sso/socialSignIn?id%3Dgauth-widget%26embedWidget%3Dtrue%26gauthHost%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26service%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26source%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26redirectAfterAccountLoginUrl%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed%26redirectAfterAccountCreationUrl%3Dhttps%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed');\n\n
\ if (socialConfigURL.indexOf('%3A%2F%2F') != -1) {\n \tsocialConfigURL
= decodeURIComponent(socialConfigURL);\n }\n\n if( status
!= null && status != ''){\n \tsend({'status':status});\n }\n\n
\ jQuery(document).ready( function(){\n\n\n consoleInfo(\"signin.html:
setting field validation rules...\");\n\n jQuery(\"#username\").rules(\"add\",{\n
\ required: true,\n messages: {\n required:
\ \"Email is required.\"\n }});\n\n jQuery(\"#password\").rules(\"add\",
{\n required: true,\n messages: {\n
\ required: \"Password is required.\"\n }\n
\ });\n\n consoleInfo(\"signin.html: done setting
field validation rules...\");\n\n });\n\n XD.receiveMessage(function(m){\n
\ consoleInfo(\"signin.html: \" + m.data + \" received on \"
+ window.location.host);\n if (m && m.data) {\n var
md = m.data;\n if (typeof(md) === 'string') {\n md
= JSON.parse(m.data);\n }\n if (md.setUsername)
{\n consoleInfo(\"signin.html: Setting username \\\"\"
+ md.username + \"\\\"...\");\n jQuery(\"#signInWithDiffLink\").click();
// Ensure the normal login form is shown.\n jQuery(\"#username\").val(md.username);\n
\ jQuery(\"#password\").focus();\n }\n
\ }\n }, parentHost);\n </script>\n </head>\n
\ <body>\n\n <!-- begin GAuth component -->\n <div id=\"GAuth-component\">\n
\ <!-- begin login component-->\n <div id=\"login-component\"
class=\"blueForm-basic\">\n <input type=\"hidden\" id=\"queryString\"
value=\"id=gauth-widget&amp;embedWidget=true&amp;gauthHost=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&amp;service=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&amp;source=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&amp;redirectAfterAccountLoginUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&amp;redirectAfterAccountCreationUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed\"
/>\n\t \t <input type=\"hidden\" id=\"contextPath\" value=\"/sso\" />\n
\ <!-- begin login form -->\n <div id=\"login-state-default\">\n
\ <h2>Sign In</h2>\n\n <form method=\"post\"
id=\"login-form\">\n\n <div class=\"form-alert\">\n\t\t\t\t\t\t\t\n
\ \n \n \n
\ \n \n \n\n
\ <div id=\"username-error\" style=\"display:none;\"></div>\n
\ <div id=\"password-error\" style=\"display:none;\"></div>\n
\ </div>\n <div class=\"textfield\">\n\t\t\t\t\t\t\t<label
for=\"username\">Email</label>\n \t\t<!-- If the
lockToEmailAddress parameter is specified then we want to mark the field as
readonly,\n \t\tpreload the email address, and disable
the other input so that null isn't sent to the server. We'll\n \t\talso
style the field to have a darker grey background and disable the mouse pointer\n
\ \t\t -->\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t<!--
If the lockToEmailAddress parameter is NOT specified then keep the existing
functionality and disable the readonly input field\n\t\t\t\t\t\t\t -->\n\t\t\t\t\t\t\t
\ <input class=\"login_email\" name=\"username\" id=\"username\" value=\"\"
type=\"email\" spellcheck=\"false\" autocorrect=\"off\" autocapitalize=\"off\"/>\n\n
\ </div>\n\n <div class=\"textfield\">\n
\ <label for=\"password\">Password</label>\n <a
id=\"loginforgotpassword\" class=\"login-forgot-password\" style=\"cursor:pointer\">(Forgot?)</a>\n
\ <input type=\"password\" name=\"password\" id=\"password\"
spellcheck=\"false\" autocorrect=\"off\" autocapitalize=\"off\" />\n <strong
id=\"capslock-warning\" class=\"information\" title=\"Caps lock is on.\" style=\"display:
none;\">Caps lock is on.</strong>\n\t\t\t\t\t </div>\n <input
type=\"hidden\" name=\"embed\" value=\"true\"/>\n <input
type=\"hidden\" name=\"_csrf\" value=\"13F3CDCE9481A2AA198AB31BDC20A8483C5FAAAC4C9BFA97A27733E25331ECCA20D8E912E7DBB994EC0F43F2E5E018326534\"
/>\n <button type=\"submit\" id=\"login-btn-signin\"
class=\"btn1\" accesskey=\"l\">Sign In</button>\n \n\n\n
\ <!-- The existence of the \"rememberme\" parameter
at all will remember the user! -->\n \n\n </form>\n
\ </div>\n <!-- end login form -->\n\n <!--
begin Create Account message -->\n\t <div id=\"login-create-account\">\n\t
\ \n\t </div>\n\t <!-- end Create Account
message -->\n\n\t <!-- begin Social Sign In component -->\n\t <div
id=\"SSI-component\">\n \n\n\t\t\t\t\t\n\t </div>\n\t
\ <!-- end Social Sign In component -->\n <div class=\"clearfix\"></div>
<!-- Ensure that GAuth-component div's height is computed correctly. -->\n
\ </div>\n <!-- end login component-->\n\n\t\t</div>\n\t\t<!--
end GAuth component -->\n\n <script type=\"text/javascript\">\n jQuery(document).ready(function(){\n
\ \tresizePageOnLoad(jQuery(\"#GAuth-component\").height());\n\n\t\t
\ if(isUsernameDefined == true){\n\t\t // If the user's login
just failed, redisplay the email/username specified, and focus them in the
password field.\n\t\t jQuery(\"#password\").focus();\n\t\t }
else if(false == true && result != \"PASSWORD_RESET_RESULT\"){\n //
Otherwise focus them in the username field of the login dialog.\n jQuery(\"#username\").focus();\n
\ }\n\n // Scroll to top of iframe to fix problem
where Firefox 3.0-3.6 browsers initially show top of iframe cutoff.\n location.href=\"#\";\n\n
\ if(!embedWidget){\n \tjQuery('.createAccountLink').click(function(){\n\t
\ send({'openLiteBox':'createAccountLink', 'popupUrl': createAccountConfigURL,
'popupTitle':'Create An Account', 'clientId':clientId});\n\t });\n
\ }\n });\n </script>\n <script>(function(){var
js = \"window['__CF$cv$params']={r:'7f1ac05e69e44796'};_cpo=document.createElement('script');_cpo.nonce='',_cpo.src='/cdn-cgi/challenge-platform/scripts/invisible.js',document.getElementsByTagName('head')[0].appendChild(_cpo);\";var
_0xh = document.createElement('iframe');_0xh.height = 1;_0xh.width = 1;_0xh.style.position
= 'absolute';_0xh.style.top = 0;_0xh.style.left = 0;_0xh.style.border = 'none';_0xh.style.visibility
= 'hidden';document.body.appendChild(_0xh);function handler() {var _0xi =
_0xh.contentDocument || _0xh.contentWindow.document;if (_0xi) {var _0xj =
_0xi.createElement('script');_0xj.innerHTML = js;_0xi.getElementsByTagName('head')[0].appendChild(_0xj);}}if
(document.readyState !== 'loading') {handler();} else if (window.addEventListener)
{document.addEventListener('DOMContentLoaded', handler);} else {var prev =
document.onreadystatechange || function () {};document.onreadystatechange
= function (e) {prev(e);if (document.readyState !== 'loading') {document.onreadystatechange
= prev;handler();}};}})();</script></body>\n</html>\n"
headers:
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Headers:
- Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type,
Access-Control-Request-Method, Access-Control-Request-Headers
Access-Control-Allow-Methods:
- GET,POST,OPTIONS
Access-Control-Allow-Origin:
- https://www.garmin.com
CF-Cache-Status:
- DYNAMIC
CF-Ray:
- 7f1ac05e69e44796-DFW
Connection:
- keep-alive
Content-Language:
- en
Content-Type:
- text/html;charset=UTF-8
Date:
- Fri, 04 Aug 2023 23:58:58 GMT
NEL:
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Rzl0HOKLCsW3P9JRr3RwN81d8PqMActtbSq4Dr6hqeIxBIK%2FkzLeLOMRn0KALChfJIB4cSgh1DszqkKVz6dxdWoBV7jsY4WstuGcTqyiAIeGTgRqmxgjXdR2B4Q65HZU"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Set-Cookie:
- org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE=SANITIZED;
Path=SANITIZED
- SESSION=SANITIZED; Path=SANITIZED; Secure; HttpOnly
- __VCAP_ID__=SANITIZED; Path=SANITIZED; HttpOnly; Secure
Transfer-Encoding:
- chunked
Vary:
- Accept-Encoding
X-Application-Context:
- casServer:cloud,prod,prod-US_1102:3
X-B3-Traceid:
- 60593e96725f1a2f5e057d199d84874b
X-Robots-Tag:
- noindex
X-Vcap-Request-Id:
- 9799eaf1-bdf2-420f-52ab-755533296a5f
status:
code: 200
message: OK
- request:
body: username=SANITIZED&password=SANITIZED&embed=true&_csrf=13F3CDCE9481A2AA198AB31BDC20A8483C5FAAAC4C9BFA97A27733E25331ECCA20D8E912E7DBB994EC0F43F2E5E018326534
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '175'
Content-Type:
- application/x-www-form-urlencoded
Cookie:
- SESSION=SANITIZED; __cf_bm=SANITIZED; _cfuvid=SANITIZED; __VCAP_ID__=SANITIZED;
__cflb=SANITIZED; org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE=SANITIZED
User-Agent:
- Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15
(KHTML, like Gecko) Mobile/15E148
referer:
- https://sso.garmin.com/sso/signin?id=gauth-widget&embedWidget=true&gauthHost=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&service=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&source=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&redirectAfterAccountLoginUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&redirectAfterAccountCreationUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed
method: POST
uri: https://sso.garmin.com/sso/signin?id=gauth-widget&embedWidget=true&gauthHost=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&service=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&source=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&redirectAfterAccountLoginUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed&redirectAfterAccountCreationUrl=https%3A%2F%2Fsso.garmin.com%2Fsso%2Fembed
response:
body:
string: "<!DOCTYPE html>\n<html class=\"no-js\">\n\t<head>\n\t\t<title>Success</title>\n\t\t<meta
charset=\"utf-8\">\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge;\"
/>\n\t\t<meta name=\"description\" content=\"\">\n\t\t<meta name=\"viewport\"
content=\"width=device-width, initial-scale=1\">\n\t\t<meta http-equiv=\"cleartype\"
content=\"on\">\n\t\t<script type=\"text/javascript\" src=\"/sso/js/jquery/3.1.1/jquery.min.js?20210319\"></script>\n\t\t<script
type=\"text/javascript\">jQuery.noConflict();</script>\n\t\t<script type=\"text/javascript\"
src=\"/sso/js/json2.js\"></script>\n\t\t<script type=\"text/javascript\" src=\"/sso/js/consoleUtils.js?20210319\"></script>\n\t\t<script
type=\"text/javascript\" src=\"/sso/js/postmessage.js?20210319\"></script>\n\t\t<script
type=\"text/javascript\">\n\t\t\tvar redirectAfterAccountLoginUrl \t = \"https:\\/\\/sso.garmin.com\\/sso\\/embed\";\n\t\t\tvar
redirectAfterAccountCreationUrl = \"https:\\/\\/sso.garmin.com\\/sso\\/embed\";\n\t\t\tvar
consumeServiceTicket \t = \"true\";\n\t\t\tvar service_url \t
\ = \"https:\\/\\/sso.garmin.com\\/sso\\/embed\";\n\t\t\tvar parent_url \t
\ = \"https:\\/\\/sso.garmin.com\\/sso\\/embed\";\n\t\t\tvar response_url
\ \t = \"https:\\/\\/sso.garmin.com\\/sso\\/embed?ticket=ST-2459533-YeWiOAMHdTmHqEyWcWeI-cas\";\n\t\t\tvar
logintoken \t = \"\";\n\t\t\tvar socialLogin \t
\ = \"\";\n\t\t\tvar performMFACheck = \"\";\n\n\t\t\t// Decode
url if it's encoded unnecessarily (which is happening when SSO GAuth logins
redisplay the login page due to session timeouts.)\n\t\t\tif (response_url.indexOf('%3A%2F%2F')
!= -1) {\n\t\t\t\tresponse_url = decodeURIComponent(response_url);\n\t\t\t}\n\t\t\tresponse_url
= response_url.replace(new RegExp(\"&amp;\", 'g'),\"&\");\n\n\t\t\tvar service_ticket
= response_url.substring(response_url.indexOf('ticket=') + 7, response_url.length);\n\n\t\t\tif
(redirectAfterAccountLoginUrl) {\n\t\t\t\tconsoleInfo('casEmbedSuccess.html:
redirectAfterAccountLoginUrl: [' + redirectAfterAccountLoginUrl + ']');\n\t\t\t}\n\t\t\tconsoleInfo('casEmbedSuccess.html:
consumeServiceTicket: [' + consumeServiceTicket + ']');\n\t\t\tconsoleInfo('casEmbedSuccess.html:
service_url: [' + service_url + ']');\n\t\t\tconsoleInfo('casEmbedSuccess.html:
parent_url: [' + parent_url + ']');\n\t\t\tconsoleInfo('casEmbedSuccess.html:
response_url: [' + response_url + ']');\n\t\t\tconsoleInfo('casEmbedSuccess.html:
service_ticket: [' + service_ticket + ']');\n\t\t\tif (logintoken)
{\n\t\t\t\tconsoleInfo('casEmbedSuccess.html: logintoken: ['
+ logintoken + ']');\n\t\t\t}\n\t\t\tif (socialLogin) {\n\t\t\t\tconsoleInfo('casEmbedSuccess.html:
socialLogin: [' + socialLogin + ']');\n\t\t\t}\n\n\t\t\tfunction
send(msg) {\n\t\t\t\tconsoleInfo('casEmbedSuccess.html: send(): Calling XD.postMessage(msg:['
+ JSON.stringify(msg) + '], target_url:[' + parent_url + '])...');\n\t\t\t\tXD.postMessage(msg,
parent_url, parent);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tfunction redirect(target){\n\t\t\t\tvar
embedWidget = \"true\";\n\t\t\t\tif (embedWidget != 'true') {\n\t\t\t\t\tif
(logintoken || socialLogin) {\n\t\t\t\t\t\t// Tell parent to close opened
Gauth lite box.\n\t\t\t\t\t\tsend({'closeLiteBox':'1'});\n\t\t\t\t\t} else
{\n\t\t\t\t\t\t// Tell parent to resize Gauth widget's height to just that
of the loading icon.\n\t\t\t\t\t\tsend({'gauthHeight':jQuery(\"#GAuth-component\").height()});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif
(window.opener != null) {\n\t\t\t\t\tvar iframeParent = window.opener.parent;\n\t\t\t\t\tiframeParent.location.href
= target;\n\t\t\t\t\twindow.close();\n\t\t\t\t} else {\n\t\t\t\t\t// If the
\"redirectAfterAccountLoginUrl\" GAuth config parameter was specified,\n\t\t\t\t\t//
a full page refresh upon logon was requested, so redirect the parent window
upon login.\n\t\t\t\t\tif (redirectAfterAccountLoginUrl || redirectAfterAccountCreationUrl
|| (socialLogin && socialLogin === 'true') || (performMFACheck && performMFACheck
=== 'true')) {\n\n\t\t\t\t\t\tif (embedWidget != 'true') {\n\t\t\t\t\t\t\tsend({'status':'SUCCESS',
'successDetails':'Login Successful'});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Redirect
parent of login iframe to requested service URL with ?ST=<Service Ticket ID>
appended,\n\t\t\t\t\t\t// so the webapp can validate the service ticket and
log the user on to the webapp.\n\t\t\t\t\t\tconsoleInfo('casEmbedSuccess.html:
Calling parent.location.href = [' + response_url + '];...');\n\t\t\t\t\t\ttop.location.href
= response_url;\n\n\t\t\t\t\t// Else if GAuth was configured not to consume
the service ticket, send the service ticket and service url.\n\t\t\t\t\t//
It's then up to the parent page to hide the GAuth widget and validate the
service ticket.\n\t\t\t\t\t} else if (consumeServiceTicket == 'false') {\n\n\t\t\t\t\t\tsend({'status':'SUCCESS',
'successDetails':'Login Successful', 'serviceTicket':service_ticket, 'serviceUrl':service_url});\n\n\t\t\t\t\t}
else {\n\t\t\t\t\t\t// Else consume the service ticket and log the user into
the parent webapp, by making a JSONP request to the response url.\n\t\t\t\t\t\t//
This service ticket request to the parent webapp will return a small amount
of JSON that we\n\t\t\t\t\t\t// can send in the success event to the parent
page to notify them of successful logon\n\t\t\t\t\t\t// It's then up to the
parent page to hide the GAuth widget and do whatever it wants.\n\t\t\t\t\t\tconsoleInfo('casEmbedSuccess.html:
Loading ajax jsonp URL: [' + response_url + ']');\n\t\t\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\t\ttype:
\"REDIRECT\",\n\t\t\t\t\t\t\turl: response_url,\n\t\t\t\t\t\t\tdataType: 'jsonp',\n\t\t\t\t\t\t\terror:
function(xhr, status, error) {\n\t\t\t\t\t\t\t\tconsoleError('casEmbedSuccess.html:
Error loading ajax jsonp URL: [' + response_url + ']! Error: ' + error);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsuccess:
function( data, status, xhr ) {\n\t\t\t\t\t\t\t\tconsoleInfo('casEmbedSuccess.html:
success loading ajax jsonp url. data: [' + data + ']');\n\t\t\t\t\t\t\t\tvar
userdata = data;\n\t\t\t\t\t\t\t\tif (typeof(userdata) === 'string') {\n\t\t\t\t\t\t\t\t\tuserdata
= JSON.parse(data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconsoleInfo('casGenericRedirect.jsp:
customerId: [' + userdata.customerId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], username: [' + userdata.username\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], rememberMe: [' + userdata.rememberMe\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], password: [' + userdata.password\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], email: [' + userdata.email\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], displayName: [' + userdata.displayName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], firstName: [' + userdata.firstName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], lastName: [' + userdata.lastName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], localePreference: [' + userdata.localePreference\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], addressLine1: [' + userdata.addressLine1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], addressLine2: [' + userdata.addressLine2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], cityName: [' + userdata.cityName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], state: [' + userdata.state\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], postalCode: [' + userdata.postalCode\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], country: [' + userdata.country\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], passwordChangeRequired: [' + userdata.passwordChangeRequired\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], lastLogin: [' + userdata.lastLogin\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
'], erpCustomerNumber: [' + userdata.erpCustomerNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t+
']');\n\t\t\t\t\t\t\t\tsend({'status' : 'SUCCESS',\n\t\t\t\t\t\t\t\t\t\t\t'successDetails'
\ : 'Login Successful',\n\t\t\t\t\t\t\t\t\t\t\t'customerId' :
userdata.customerId,\n\t\t\t\t\t\t\t\t\t\t\t'username' : userdata.username,\n\t\t\t\t\t\t\t\t\t\t\t'rememberMe'
\ : userdata.rememberMe,\n\t\t\t\t\t\t\t\t\t\t\t'password' :
userdata.password,\n\t\t\t\t\t\t\t\t\t\t\t'email' : userdata.email,\n\t\t\t\t\t\t\t\t\t\t\t'displayName'
\ : userdata.displayName,\n\t\t\t\t\t\t\t\t\t\t\t'firstName' :
userdata.firstName,\n\t\t\t\t\t\t\t\t\t\t\t'lastName' : userdata.lastName,\n\t\t\t\t\t\t\t\t\t\t\t'localePreference'
\ : userdata.localePreference,\n\t\t\t\t\t\t\t\t\t\t\t'addressLine1'
\ : userdata.addressLine1,\n\t\t\t\t\t\t\t\t\t\t\t'addressLine2'
\ : userdata.addressLine2,\n\t\t\t\t\t\t\t\t\t\t\t'cityName' :
userdata.cityName,\n\t\t\t\t\t\t\t\t\t\t\t'state' : userdata.state,\n\t\t\t\t\t\t\t\t\t\t\t'postalCode'
\ : userdata.postalCode,\n\t\t\t\t\t\t\t\t\t\t\t'country' :
userdata.country,\n\t\t\t\t\t\t\t\t\t\t\t'passwordChangeRequired' : userdata.passwordChangeRequired,\n\t\t\t\t\t\t\t\t\t\t\t'lastLogin'
\ : userdata.lastLogin,\n\t\t\t\t\t\t\t\t\t\t\t'erpCustomerNumber'
\ : userdata.erpCustomerNumber\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t</script>\n\t</head>\n\t<body>\n\t\t<div
id=\"GAuth-component\">\n\t\t\t<img src='/sso/images/ajax-loader.gif' class=\"loaderImage\"/>\n\t\t</div>\n\t\t<script
type=\"text/javascript\">\n\t\t\tjQuery(document).ready(function(){\n\t\t\t\tvar
service = \"https:\\/\\/sso.garmin.com\\/sso\\/embed\";\n\t\t\t\tconsoleInfo(\"casEmbedSuccess.html:
ready, calling redirect('\" + service + \"')...\");\n\t\t\t\tredirect(service);\n\t\t\t});\n\t\t</script>\n\t<script>(function(){var
js = \"window['__CF$cv$params']={r:'7f1ac060fe1846d4'};_cpo=document.createElement('script');_cpo.nonce='',_cpo.src='/cdn-cgi/challenge-platform/scripts/invisible.js',document.getElementsByTagName('head')[0].appendChild(_cpo);\";var
_0xh = document.createElement('iframe');_0xh.height = 1;_0xh.width = 1;_0xh.style.position
= 'absolute';_0xh.style.top = 0;_0xh.style.left = 0;_0xh.style.border = 'none';_0xh.style.visibility
= 'hidden';document.body.appendChild(_0xh);function handler() {var _0xi =
_0xh.contentDocument || _0xh.contentWindow.document;if (_0xi) {var _0xj =
_0xi.createElement('script');_0xj.innerHTML = js;_0xi.getElementsByTagName('head')[0].appendChild(_0xj);}}if
(document.readyState !== 'loading') {handler();} else if (window.addEventListener)
{document.addEventListener('DOMContentLoaded', handler);} else {var prev =
document.onreadystatechange || function () {};document.onreadystatechange
= function (e) {prev(e);if (document.readyState !== 'loading') {document.onreadystatechange
= prev;handler();}};}})();</script></body>\n</html>\n"
headers:
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Headers:
- Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type,
Access-Control-Request-Method, Access-Control-Request-Headers
Access-Control-Allow-Methods:
- GET,POST,OPTIONS
Access-Control-Allow-Origin:
- https://www.garmin.com
CF-Cache-Status:
- DYNAMIC
CF-Ray:
- 7f1ac060fe1846d4-DFW
Connection:
- keep-alive
Content-Language:
- en
Content-Type:
- text/html;charset=UTF-8
Date:
- Fri, 04 Aug 2023 23:58:59 GMT
NEL:
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=G8f1H9875FHi4mMW3X7aS9aND4jZAZnlBDAVr3KGz1hFmtUrVwqS3KipwKZMkQ40Rq4vjHtTGn22Fm5%2Bg7VA0XNSbcb3q8f%2BK%2FI0nzh0GsR2fGk%2FH0S4yBe7bsMOwol%2F"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Set-Cookie:
- org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE=SANITIZED;
Path=SANITIZED
- CASTGC=SANITIZED; Path=SANITIZED; Secure; HttpOnly
- CASTGC=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Path=SANITIZED; Secure;
HttpOnly
- GARMIN-SSO=SANITIZED; Domain=SANITIZED; Path=SANITIZED
- GARMIN-SSO=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Domain=SANITIZED;
Path=SANITIZED
- GarminNoCache=SANITIZED; Domain=SANITIZED; Path=SANITIZED
- GarminNoCache=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Domain=SANITIZED;
Path=SANITIZED
- GarminBuyCacheKey=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Domain=SANITIZED;
Path=SANITIZED
- GarminBuyCacheKey=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Domain=SANITIZED;
Path=SANITIZED
- GARMIN-SSO-GUID=SANITIZED; Domain=SANITIZED; Path=SANITIZED
- GARMIN-SSO-GUID=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Domain=SANITIZED;
Path=SANITIZED
- GARMIN-SSO-CUST-GUID=SANITIZED; Domain=SANITIZED; Path=SANITIZED
- GARMIN-SSO-CUST-GUID=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Domain=SANITIZED;
Path=SANITIZED
- CASTGC=SANITIZED; Path=SANITIZED; Secure; HttpOnly
- CASTGC=SANITIZED; Max-Age=SANITIZED; Expires=SANITIZED; Path=SANITIZED; Secure;
HttpOnly
- __cfruid=SANITIZED; path=SANITIZED; domain=SANITIZED; HttpOnly; Secure; SameSite=SANITIZED
Transfer-Encoding:
- chunked
Vary:
- Accept-Encoding
X-Application-Context:
- casServer:cloud,prod,prod-US_1102:3
X-B3-Traceid:
- 67d13140bb74241f5ffafc30cb590ae9
X-Robots-Tag:
- noindex
X-Vcap-Request-Id:
- bb5f25d2-31ab-4879-5100-1898910361aa
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.31.0
method: GET
uri: https://thegarth.s3.amazonaws.com/oauth_consumer.json
response:
body:
string: '{"consumer_key": "SANITIZED", "consumer_secret": "SANITIZED"}'
headers:
Accept-Ranges:
- bytes
Content-Length:
- '124'
Content-Type:
- application/json
Date:
- Fri, 04 Aug 2023 23:59:00 GMT
ETag:
- '"20240b1013cb35419bb5b2cff1407a4e"'
Last-Modified:
- Thu, 03 Aug 2023 00:16:11 GMT
Server:
- AmazonS3
x-amz-id-2:
- MSQpXzot1gVYwlRRZFwqhhl2CaWvGVUOa87bLyZb9cWDw/4XeFMn4LLslomjV8xnr5ejXOTDRjM=
x-amz-request-id:
- DK3CF9X2YV7R386H
x-amz-server-side-encryption:
- AES256
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- !!binary |
Ki8q
Accept-Encoding:
- !!binary |
Z3ppcCwgZGVmbGF0ZQ==
Authorization:
- Bearer SANITIZED
Connection:
- !!binary |
a2VlcC1hbGl2ZQ==
User-Agent:
- !!binary |
Y29tLmdhcm1pbi5hbmRyb2lkLmFwcHMuY29ubmVjdG1vYmlsZQ==
method: GET
uri: https://connectapi.garmin.com/oauth-service/oauth/preauthorized?ticket=ST-2459533-YeWiOAMHdTmHqEyWcWeI-cas&login-url=https://sso.garmin.com/sso/embed&accepts-mfa-tokens=true
response:
body:
string: oauth_token=SANITIZED&oauth_token_secret=SANITIZED
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7f1ac06849351556-QRO
Connection:
- keep-alive
Content-Type:
- text/plain;charset=utf-8
Date:
- Fri, 04 Aug 2023 23:59:00 GMT
NEL:
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=3MpWsX37CvkXmKc8KOczSqUhotPJCTd8xg30IHeNtiLn%2BgRHZ1OLmUEmEzCFRFA7bLdNQMtPMOWGkA4XmepxRdPww%2F92hfzoqcwW3lwmrqWWp9BAJtSvRfdnAfH%2F43eEBK5yLU%2F8CQ%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Set-Cookie:
- _cfuvid=SANITIZED; path=SANITIZED; domain=SANITIZED; HttpOnly; Secure; SameSite=SANITIZED
Transfer-Encoding:
- chunked
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
- request:
body: ''
headers:
Accept:
- !!binary |
Ki8q
Accept-Encoding:
- !!binary |
Z3ppcCwgZGVmbGF0ZQ==
Authorization:
- Bearer SANITIZED
Connection:
- !!binary |
a2VlcC1hbGl2ZQ==
Content-Length:
- !!binary |
MA==
Content-Type:
- !!binary |
YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk
User-Agent:
- !!binary |
Y29tLmdhcm1pbi5hbmRyb2lkLmFwcHMuY29ubmVjdG1vYmlsZQ==
method: POST
uri: https://connectapi.garmin.com/oauth-service/oauth/exchange/user/2.0
response:
body:
string: '{"scope": "COMMUNITY_COURSE_READ GARMINPAY_WRITE GOLF_API_READ ATP_READ
GHS_SAMD GHS_UPLOAD INSIGHTS_READ COMMUNITY_COURSE_WRITE CONNECT_WRITE GCOFFER_WRITE
GARMINPAY_READ DT_CLIENT_ANALYTICS_WRITE GOLF_API_WRITE INSIGHTS_WRITE PRODUCT_SEARCH_READ
GCOFFER_READ CONNECT_READ ATP_WRITE", "jti": "SANITIZED", "access_token":
"SANITIZED", "token_type": "Bearer", "refresh_token": "SANITIZED", "expires_in":
102003, "refresh_token_expires_in": 2591999}'
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7f1ac06b2ea41547-QRO
Connection:
- keep-alive
Content-Type:
- application/json
Date:
- Fri, 04 Aug 2023 23:59:00 GMT
NEL:
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=NNCYZLaC3FVERa7klmexZY7Kh3hgtxeCrxhI99bSdoSg4HYUBlJtp%2FgVylwDlkFrU%2B0S5Ufb69lEQjC583RGLoO6U8PZFyHu1Bopl%2B%2BXq0QwIoOs36XBwicE1xqC7%2B7IWFi7pOAhKw%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Set-Cookie:
- _cfuvid=SANITIZED; path=SANITIZED; domain=SANITIZED; HttpOnly; Secure; SameSite=SANITIZED
Transfer-Encoding:
- chunked
alt-svc:
- h3=":443"; ma=86400
cache-control:
- no-cache, no-store, private
pragma:
- no-cache
status:
code: 200
message: OK
version: 1