futapi / fut

fut is a simple library for managing Fifa 19 Ultimate Team.
GNU General Public License v3.0
317 stars 138 forks source link

403 error #146

Closed JKetelaar closed 8 years ago

JKetelaar commented 9 years ago

Hello, For some reason I cannot login to the EA servers.

The error:

{'code': '403', 'debug': '', 'reason': '', 'string': ''}
Traceback (most recent call last):
  File "F:/Users/jketelaar/PycharmProjects/FUT/fut/example.py", line 5, in <module>
    fut.Core('[censored by oczkers]', '[censored by oczkers]', '[censored by oczkers]', 'ps4', '562281', None, True, "cookies.txt")
  File "F:\Users\jketelaar\PycharmProjects\FUT\fut\core.py", line 133, in __init__
    self.__login__(email, passwd, secret_answer, platform, code, emulate)
  File "F:\Users\jketelaar\PycharmProjects\FUT\fut\core.py", line 302, in __login__
    self.r.headers['X-UT-SID'] = self.sid = rc['sid']
KeyError: 'sid'

The debug log:

2015-09-27 22:49:24,413 [INFO] [requests.packages.urllib3.connectionpool] _new_conn: Starting new HTTPS connection (1): www.easports.com (line 735)
2015-09-27 22:49:24,838 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /uk/fifa/football-club/ultimate-team HTTP/1.1" 301 262 (line 383)
2015-09-27 22:49:24,948 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /uk/fifa/ultimate-team/web-app HTTP/1.1" 302 None (line 383)
2015-09-27 22:49:24,954 [INFO] [requests.packages.urllib3.connectionpool] _new_conn: Starting new HTTPS connection (1): accounts.ea.com (line 735)
2015-09-27 22:49:25,401 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /connect/auth?response_type=code&client_id=EASFC-web&state=Itd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI&redirect_uri=http%3A%2F%2Fwww.easports.com%2Ffifa%2Flogin_check&locale=en_GB&scope=basic.identity+basic.persona+signin+offline+security.challenge HTTP/1.1" 302 0 (line 383)
2015-09-27 22:49:25,402 [INFO] [requests.packages.urllib3.connectionpool] _new_conn: Starting new HTTPS connection (1): signin.ea.com (line 735)
2015-09-27 22:49:25,839 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /p/web/login?fid=FOnMZOXjyTS8vXOSDgMsO5PoO7YGihX HTTP/1.1" 302 0 (line 383)
2015-09-27 22:49:25,957 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /p/web/login?execution=e1143030404s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web HTTP/1.1" 200 None (line 383)
2015-09-27 22:49:26,464 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "POST /p/web/login?execution=e1143030404s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web HTTP/1.1" 302 0 (line 383)
2015-09-27 22:49:26,579 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /p/web/login?execution=e1143030404s2&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web HTTP/1.1" 200 None (line 383)
2015-09-27 22:49:26,580 [DEBUG] [root] __login__: b'\n<!DOCTYPE html>\n<html lang="en">\n<head>\n    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>\n\n    <title>Login Verification</title>\n    <meta name="title" content="Login Verification"/>\n    <meta name="description" content="Input your Two Factor Authentication Code"/>\n    <link rel="shortcut icon" href="/p/favicon.ico"/>\n    <meta name="lc" content="en_GB"/>\n    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>\n    <meta name="msapplication-tap-highlight" content="no" />\n    <meta http-equiv="X-UA-Compatible" content="IE=Edge">\n\n<script type="text/javascript">window.EA = {};</script>\n<script type="text/javascript" src="//fonts.ea.com/fbl8bgs.js"></script>\n<script type="text/javascript">(function () {\n    try {\n        Typekit.load();\n    } catch (ex) {\n        var html = document.getElementsByTagName(\'html\')[0];\n        html.className = (html.className || \'\') + \' wf-inactive\'\n    }\n})();</script>\n\n\n    <script type="text/javascript" src="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/js/jquery-1.8.3.min.v_1441631976.js"></script>\n    <script type="text/javascript" src="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/js/jquery.origin-ux-elements.v_1441631976-min.js"></script>\n    <script type="text/javascript" src="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/js/jquery.origin-layout.v_1441631976-min.js"></script>\n    <script type="text/javascript" src="https://eaassets-a.akamaihd.net/signin_ea_com/p/statics/challenge/js/jquery.origin-challenge-tfa.v_1441631974-min.js"></script>\n\n<script type="text/javascript">\n    if (!window.challenge_cancel) {\n        window.challenge_cancel = function() {\n            if ($("#btnCancel").length > 0) {\n                $("#btnCancel").trigger("click");\n                return true;\n            } else {\n                return false;\n            }\n        }\n    }\n</script>\n<script type="text/javascript">\n    $(document).ready(function () {\n        $("#tfa_code_help_link").on("click", function (event) {\n            if ($("#tfa_code_help_link").attr("href").lastIndexOf("#") != 0) {\n                event.preventDefault();\n                window.open($("#tfa_code_help_link").attr("href"), \'_blank\');\n            }\n        });\n\n        $("#learn_more_link").on("click", function (event) {\n            if ($("#learn_more_link").attr("href").lastIndexOf("#") != 0) {\n                event.preventDefault();\n                window.open($("#learn_more_link").attr("href"), \'_blank\');\n\n            }\n        });\n\n        $("#privacyLink").on("click", function (event) {\n            if ($("#privacyLink").attr("href").lastIndexOf("#") != 0) {\n                event.preventDefault();\n                window.open($("#privacyLink").attr("href"), \'_blank\');\n            }\n        });\n    });\n</script>\n<script type="text/javascript">\n    $(document).ready(function () {\n        $(".origin-ux-button").unbind("touchstart").bind("touchstart", ontouchStart);\n        $(".origin-ux-button").unbind("touchmove").bind("touchmove", ontouchMove);\n        $(".origin-ux-button").unbind("touchend").bind("touchend", ontouchEnd);\n\n        function ontouchStart(event) {\n            if (detectMobileDevice()) {\n                $(this).addClass(\'touchOn\');\n            }\n        };\n\n        function ontouchMove(event) {\n            if (detectMobileDevice()) {\n                $(this).removeClass(\'touchOn\');\n            }\n        };\n\n        function ontouchEnd(event) {\n            if (detectMobileDevice()) {\n                $(this).removeClass(\'touchOn\');\n            }\n        }\n\n        function detectMobileDevice() {\n            if (navigator.platform.indexOf(\'iPad\') == -1 && navigator.platform.indexOf(\'iPhone\') == -1 && navigator.platform.indexOf(\'iPod\') == -1 &&\n                    navigator.userAgent.indexOf("Android") == -1 && navigator.userAgent.indexOf("Windows Phone") == -1) {\n                return false;\n            }\n            return true;\n        }\n    });\n</script>\n\n<script type="text/javascript">\n    $(document).ready(function() {\n        $.fn.tfa({\n        });\n        $("#twoFactorCode").focus();\n    });\n</script>\n        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/css/origin-ux-elements.v_1441631976-min.css"/>\n        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/css/origin-layout.v_1441631976-min.css"/>\n        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/statics/challenge/css/origin-challenge-tfa.v_1441631974-min.css"/>\n        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/statics/challenge/css/origin-challenge-common.v_1441631974-min.css"/>\n\n<!--  GA -->\n<script type="text/javascript">\n    var _gaq = _gaq || [];\n    _gaq.push([\'_setAccount\', \'UA-38277543-1\']);\n    _gaq.push([\'_setDomainName\', \'.ea.com\']);\n    _gaq.push([\'_trackPageview\']);\n    (function () {\n        var ga = document.createElement(\'script\');\n        ga.type = \'text/javascript\';\n        ga.async = true;\n        ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n        var s = document.getElementsByTagName(\'script\')[0];\n        s.parentNode.insertBefore(ga, s);\n    })();\n</script>\n<!-- End of GA -->\n    <!-- Tealium -->\n    <script type="text/javascript">\n        var utag_data = {\n            region: "EMEA",\n            locale: "en_GB",\n            country: "GB",\n            language: "en",\n            userid: "",\n            user_status: "",\n            referring_site: "https://signin.ea.com/p/web/login?execution=e1143030404s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web",\n            page_name: "https://signin.ea.com/p/web/login"\n        }\n    </script>\n    <script type="text/javascript">\n        (function (a, b, c, d) {\n            a = \'//tags.tiqcdn.com/utag/ea/eadp-web-identity/prod/utag.js\';\n            b = document;\n            c = \'script\';\n            d = b.createElement(c);\n            d.src = a;\n            d.type = \'text/java\' + c;\n            d.async = true;\n            a = b.getElementsByTagName(c)[0];\n            a.parentNode.insertBefore(d, a);\n        })();\n    </script>\n    <!-- End of tealium -->\n\n<script type="text/javascript">\n    $(document).ready(function () {\n        var skin = \'origin\';\n        var bodySelector = $("body");\n        switch (skin) {\n            case "origin":\n                bodySelector.addClass("origin-com");\n                break;\n            case "franchisedark":\n                bodySelector.addClass("ea-franchise").addClass("ea-franchise-dark");\n                break;\n            case "franchiselight":\n                bodySelector.addClass("ea-franchise").addClass("ea-franchise-light");\n                break;\n            case "ea":\n            default:\n                bodySelector.addClass("ea-com");\n                break;\n        }\n    })\n</script>\n\n\n\n</head>\n<body>\n\n\n<div class="loading-container"></div>\n\n<div class="tfa-container">\n    <form method="post" id="challengeForm">\n        <div class="dialog-info">\n            <div id="resend-error-code">\n                <div></div>\n            </div>\n        </div>\n\n<a class="logo-origin ea-logo" title=""\n   href="https://www.origin.com/store/?no-takeover=true">\n</a>\n\n        <div class="panel" id="panel-tfa">\n            <div class="tfa-form-container">\n                <div class="panel-contents">\n                    <div class="panel-content">\n                        <h1 class="twoStepHeader">Login Verification</h1>\n\n                            <p class="check-your-type-text"><strong>Check your text messages.</strong></p>\n                            <p class="tfa-codeSent-text"><strong>Your security code was sent to: </strong>xxxxx3610</p>\n\n                        <ul>\n                            <li id="origin-tfa-container" class="origin-control-tip-container">\n<div class="origin-ux-element origin-ux-textbox origin-ux-textbox-web">\n        <label class="origin-ux-textbox-label">\n        Enter code:\n        </label>\n    <span class="origin-ux-textbox-control origin-ux-control origin-ux-purple-textbox-control">\n        <span>\n            <input type="tel" id="twofactorCode"\n                   name="twofactorCode"\n                   value=""\n                   description="" data-description="" placeholder="Enter security code here"   autocorrect="off" autocapitalize="off" autocomplete="off"/>\n        </span>\n    </span>\n    <span class="origin-ux-textbox-status-icon"></span>\n    <span class="origin-ux-textbox-status-message origin-ux-status-message">\n        &nbsp;\n    </span>\n</div>\n    \n                             </li>\n                            <li id="origin-tfa-ttd-container" class="origin-control-tip-container">\n<div class="origin-ux-element origin-ux-checkbox">\n    <label class="origin-ux-checkbox-label"></label>\n\n    <div class="origin-ux-checkbox-control origin-ux-control origin-ux-checkbox-control-purple">\n        <span>\n\t<input type="hidden" name="_trustThisDevice" value="on"/>\n\t<input type="checkbox" id="trustThisDevice" name="trustThisDevice" />\n        </span>\n        <label id="label-trustThisDevice" class="origin-ux-checkbox-label checkbox-label">Remember this computer/device</label>\n\n        <div class="tfa-ux-tooltip tfa-ux-tooltip-div-offset"><a href="#" class="tfa-ux-tooltip-icon"\n                                                                 style="margin-left:0px;"></a>\n            <span class="tfa-ux-tooltip-message-top-large">If selected, a security code will no longer be required to sign in from this computer/device.</span>\n        </div>\n    </div>\n    <span class="origin-ux-checkbox-status-message origin-ux-status-message">&nbsp;</span>\n</div>\n                            </li>\n                        </ul>\n\n                            <div style="clear: both">\n                                <a id="resend_code_link" href="/p/web/login?execution=e1143030404s2&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web&_eventId=resend" class="tfa-login-link">Resend security code</a><br>\n                            </div>\n                            <div style="clear: both; height: 20px">\n                                <a id="tfa_code_help_link" href="http://help.ea.com/uk/article/origin-login-verification-information/" class="tfa-login-link">Problems Receiving Your Code?</a><br>\n                            </div>\n\n                        <div class="panel-action-area">\n<a class=\'origin-ux-element origin-ux-button\n    origin-ux-button-primary   origin-ux-button-primary-purple\' href="#" id="btnTFAVerify">\n<span><span>Submit Security Code</span></span>\n</a>\n\n<a class=\'origin-ux-element origin-ux-button origin-ux-button-secondary btn-cancel\' href="#" id="btnCancel">\n<span><span>Cancel</span></span>\n</a>\n\n    <input type="hidden" name="_eventId" value="submit" id="_eventId"/>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n<div class="footer">\n    <span class="copyright-notice">\xc2\xa9 2015 Electronic Arts Inc. Trademarks belong to their respective owners. All rights reserved.</span>\n    <ul class="footer-navigation">\n            <li class="item-2 even"><a\n                    href="https://www.origin.com/store"\n                    target="_blank"\n                    class="link link-origin "><span>Shop at Origin</span></a>\n            </li><li class="item-3 odd">\n            <a href="https://www.origin.com/legal"\n               target="_blank"\n               class="link link-origin"><span>Legal Notices</span></a>\n        </li><li class="item-4 even">\n            <a href="http://tos.ea.com/legalapp/WEBTERMS/US/en/PC"\n               target="_blank"\n               class="link link-origin"><span>Terms of Services</span></a>\n        </li><li class="item-5 odd">\n            <a href="http://tos.ea.com/legalapp/WEBPRIVACY/US/en/PC/"\n               target="_blank"\n               class="link link-origin"><span>Privacy and Cookie Policy</span></a>\n        </li><li class="item-6 even">\n            <a href="http://aboutus.ea.com/" target="_blank"\n               class="link link-origin"><span>Corporate Info</span></a>\n        </li><li class="item-7 odd">\n            <a href="https://www.origin.com/termsofsale"\n               target="_blank"\n               class="link link-origin"><span>EA Terms of Sale</span></a>\n        </li><li class="item-8 even last">\n            <a href="https://help.ea.com/uk" target="_blank"\n               class="link link-origin"><span>Contact Us</span></a>\n        </li>    </ul>\n</div>\n    </form>\n</div>\n\n<div id="form-errors">\n    <span id="form-error-invalid-code">Incorrect code entered</span>\n</div>\n\n\n<!-- ### eanshprdaccounts12.eao.abn-iad.ea.com ### -->\n\n</body>\n</html>\n' (line 205)
2015-09-27 22:49:26,708 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "POST /p/web/login?execution=e1143030404s2&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web HTTP/1.1" 302 0 (line 383)
2015-09-27 22:49:26,821 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /p/web/login?execution=e1143030404s3&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web HTTP/1.1" 200 None (line 383)
2015-09-27 22:49:26,822 [DEBUG] [root] __login__: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

    <title>Set Up an App Authenticator</title>
    <meta name="title" content="Set Up an App Authenticator"/>
    <meta name="description" content="Set Up an App Authenticator"/>
    <link rel="shortcut icon" href="/p/favicon.ico"/>
    <meta name="lc" content="en_GB"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
    <meta name="msapplication-tap-highlight" content="no" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">

<script type="text/javascript">window.EA = {};</script>
<script type="text/javascript" src="//fonts.ea.com/fbl8bgs.js"></script>
<script type="text/javascript">(function () {
    try {
        Typekit.load();
    } catch (ex) {
        var html = document.getElementsByTagName('html')[0];
        html.className = (html.className || '') + ' wf-inactive'
    }
})();</script>

    <script type="text/javascript" src="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/js/jquery-1.8.3.min.v_1441631976.js"></script>
    <script type="text/javascript" src="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/js/jquery.origin-ux-elements.v_1441631976-min.js"></script>
    <script type="text/javascript" src="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/js/jquery.origin-layout.v_1441631976-min.js"></script>

<script type="text/javascript">
    if (!window.challenge_cancel) {
        window.challenge_cancel = function() {
            if ($("#btnCancel").length > 0) {
                $("#btnCancel").trigger("click");
                return true;
            } else {
                return false;
            }
        }
    }
</script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#tfa_code_help_link").on("click", function (event) {
            if ($("#tfa_code_help_link").attr("href").lastIndexOf("#") != 0) {
                event.preventDefault();
                window.open($("#tfa_code_help_link").attr("href"), '_blank');
            }
        });

        $("#learn_more_link").on("click", function (event) {
            if ($("#learn_more_link").attr("href").lastIndexOf("#") != 0) {
                event.preventDefault();
                window.open($("#learn_more_link").attr("href"), '_blank');

            }
        });

        $("#privacyLink").on("click", function (event) {
            if ($("#privacyLink").attr("href").lastIndexOf("#") != 0) {
                event.preventDefault();
                window.open($("#privacyLink").attr("href"), '_blank');
            }
        });
    });
</script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".origin-ux-button").unbind("touchstart").bind("touchstart", ontouchStart);
        $(".origin-ux-button").unbind("touchmove").bind("touchmove", ontouchMove);
        $(".origin-ux-button").unbind("touchend").bind("touchend", ontouchEnd);

        function ontouchStart(event) {
            if (detectMobileDevice()) {
                $(this).addClass('touchOn');
            }
        };

        function ontouchMove(event) {
            if (detectMobileDevice()) {
                $(this).removeClass('touchOn');
            }
        };

        function ontouchEnd(event) {
            if (detectMobileDevice()) {
                $(this).removeClass('touchOn');
            }
        }

        function detectMobileDevice() {
            if (navigator.platform.indexOf('iPad') == -1 && navigator.platform.indexOf('iPhone') == -1 && navigator.platform.indexOf('iPod') == -1 &&
                    navigator.userAgent.indexOf("Android") == -1 && navigator.userAgent.indexOf("Windows Phone") == -1) {
                return false;
            }
            return true;
        }
    });
</script>

<script type="text/javascript">
    $(document).ready(function () {
        $("#btnTFAUpdate").bind("click", function(event) {
            event.preventDefault();
            _gaq.push(['_trackEvent', 'ChallengeFlow', 'TFAPromotion', 'setupTFA']);
            $("#_eventId").val("submit");
            $('#challengeForm').submit();
        });

        $("#btnCancel").bind("click", function(event) {
            event.preventDefault();
            _gaq.push(['_trackEvent', 'ChallengeFlow', 'TFAPromotion', 'cancelBtn']);
            $("#_eventId").val("cancel");
            $('#challengeForm').submit();
        });

        if(navigator.userAgent.toLowerCase().indexOf("ipad")!=-1){
            $("#appDevice").val('IPAD')
        }else if(navigator.userAgent.toLowerCase().indexOf("windows phone")!=-1){
            $("#appDevice").val('WINDOWS_PHONE')
        }else if(navigator.userAgent.toLowerCase().indexOf("android")!=-1){
            $("#appDevice").val('ANDROID')
        }else {
            $("#appDevice").val('IPHONE')
        }
    });
</script>

        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/css/origin-ux-elements.v_1441631976-min.css"/>
        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/ui/core/css/origin-layout.v_1441631976-min.css"/>
        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/statics/challenge/css/origin-challenge-tfa-promotion.v_1441631974-min.css"/>
        <link rel="stylesheet" type="text/css" href="https://eaassets-a.akamaihd.net/signin_ea_com/p/statics/challenge/css/origin-challenge-common.v_1441631974-min.css"/>

<!--  GA -->
<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-38277543-1']);
    _gaq.push(['_setDomainName', '.ea.com']);
    _gaq.push(['_trackPageview']);
    (function () {
        var ga = document.createElement('script');
        ga.type = 'text/javascript';
        ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>
<!-- End of GA -->
    <!-- Tealium -->
    <script type="text/javascript">
        var utag_data = {
            region: "EMEA",
            locale: "en_GB",
            country: "GB",
            language: "en",
            userid: "",
            user_status: "",
            referring_site: "https://signin.ea.com/p/web/login?execution=e1143030404s2&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web",
            page_name: "https://signin.ea.com/p/web/login"
        }
    </script>
    <script type="text/javascript">
        (function (a, b, c, d) {
            a = '//tags.tiqcdn.com/utag/ea/eadp-web-identity/prod/utag.js';
            b = document;
            c = 'script';
            d = b.createElement(c);
            d.src = a;
            d.type = 'text/java' + c;
            d.async = true;
            a = b.getElementsByTagName(c)[0];
            a.parentNode.insertBefore(d, a);
        })();
    </script>
    <!-- End of tealium -->

<script type="text/javascript">
    $(document).ready(function () {
        var skin = 'origin';
        var bodySelector = $("body");
        switch (skin) {
            case "origin":
                bodySelector.addClass("origin-com");
                break;
            case "franchisedark":
                bodySelector.addClass("ea-franchise").addClass("ea-franchise-dark");
                break;
            case "franchiselight":
                bodySelector.addClass("ea-franchise").addClass("ea-franchise-light");
                break;
            case "ea":
            default:
                bodySelector.addClass("ea-com");
                break;
        }
    })
</script>

</head>
<body>

<div class="tfa-create-container">
    <form method="post" id="challengeForm">

<a class="logo-origin ea-logo" title=""
   href="https://www.origin.com/store/?no-takeover=true">
</a>

        <div class="panel" id="panel-tfa-create">
            <div class="tfa-create-form-container">

                <div class="panel-contents">
                    <div class="panel-content">

                        <h1>Tired of waiting for your code?</h1>

                        <div class="sec-apptype-info">
<div class="origin-ux-list">
        <label class="origin-ux-label">Use an App Authenticator to receive your verification codes. It's faster and more reliable!</label>

    <ul class="ui-listview origin-ux-element" style=" list-style-type: ">
            <li class="origin-ux-textbox-label">Get your code without WiFi or cell reception</li>
            <li class="origin-ux-textbox-label">Faster than Email or SMS</li>
    </ul>

        <label class="origin-ux-label origin-ux-note">NOTE: FIFA 15 and 16 players on Xbox 360 or PlayStation 3 will receive their security challenge codes via App Authenticator and Email.</label>
</div>
                        </div>

                        <div class="panel-action-area">
<a class='origin-ux-element origin-ux-button
    origin-ux-button-primary  btn-next origin-ux-button-primary-purple' href="#" id="btnTFAUpdate">
<span><span>Update</span></span>
</a>

<a class='origin-ux-element origin-ux-button origin-ux-button-secondary btn-cancel' href="#" id="btnCancel">
<span><span>Not Now</span></span>
</a>

    <input type="hidden" name="_eventId" value="submit" id="_eventId"/>
    <input type="hidden" id="appDevice" name="appDevice" value="IPHONE"     >

                        </div>

                        <div id="privacy-link">
                            <a href="http://privacy.ea.com/en" id="privacyLink" style="float: left">Privacy & Cookie Policy</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
<div class="footer">
    <span class="copyright-notice">© 2015 Electronic Arts Inc. Trademarks belong to their respective owners. All rights reserved.</span>
    <ul class="footer-navigation">
            <li class="item-2 even"><a
                    href="https://www.origin.com/store"
                    target="_blank"
                    class="link link-origin "><span>Shop at Origin</span></a>
            </li><li class="item-3 odd">
            <a href="https://www.origin.com/legal"
               target="_blank"
               class="link link-origin"><span>Legal Notices</span></a>
        </li><li class="item-4 even">
            <a href="http://tos.ea.com/legalapp/WEBTERMS/US/en/PC"
               target="_blank"
               class="link link-origin"><span>Terms of Services</span></a>
        </li><li class="item-5 odd">
            <a href="http://tos.ea.com/legalapp/WEBPRIVACY/US/en/PC/"
               target="_blank"
               class="link link-origin"><span>Privacy and Cookie Policy</span></a>
        </li><li class="item-6 even">
            <a href="http://aboutus.ea.com/" target="_blank"
               class="link link-origin"><span>Corporate Info</span></a>
        </li><li class="item-7 odd">
            <a href="https://www.origin.com/termsofsale"
               target="_blank"
               class="link link-origin"><span>EA Terms of Sale</span></a>
        </li><li class="item-8 even last">
            <a href="https://help.ea.com/uk" target="_blank"
               class="link link-origin"><span>Contact Us</span></a>
        </li>    </ul>
</div>
    </form>
</div>

<div id="form-errors">
    <span id="form-error-invalid-phone">Phone number is invalid</span>
    <span id="form-error-missing-country">Missing country</span>
</div>

<!-- ### eanshprdaccounts12.eao.abn-iad.ea.com ### -->

</body>
</html>
 (line 226)
2015-09-27 22:49:26,944 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "POST /p/web/login?execution=e1143030404s3&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%2Bsecurity.challenge%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Flogin_check%26locale%3Den_GB%26state%3DItd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI%26response_type%3Dcode%26client_id%3DEASFC-web HTTP/1.1" 302 0 (line 383)
2015-09-27 22:49:27,059 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /connect/auth?scope=basic.identity+basic.persona+signin+offline+security.challenge&redirect_uri=http%3A%2F%2Fwww.easports.com%2Ffifa%2Flogin_check&locale=en_GB&state=Itd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI&response_type=code&client_id=EASFC-web&fid=FOnMZOXjyTS8vXOSDgMsO5PoO7YGihX HTTP/1.1" 302 0 (line 383)
2015-09-27 22:49:27,061 [INFO] [requests.packages.urllib3.connectionpool] _new_conn: Starting new HTTP connection (1): www.easports.com (line 203)
2015-09-27 22:49:27,251 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /fifa/login_check?state=Itd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI&code=QUORABMAnAy9fPABnAF3x7I3SV61t6SqeDV6gvKQAQ HTTP/1.1" 301 351 (line 383)
2015-09-27 22:49:27,253 [INFO] [requests.packages.urllib3.connectionpool] _get_conn: Resetting dropped connection: www.easports.com (line 238)
2015-09-27 22:49:29,188 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /fifa/login_check?state=Itd1RGLoqnlVlFMqsClBHVTRa-EsUmRsY5rA4FNaSgI&code=QUORABMAnAy9fPABnAF3x7I3SV61t6SqeDV6gvKQAQ HTTP/1.1" 302 None (line 383)
2015-09-27 22:49:29,271 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /uk/fifa/ultimate-team/web-app HTTP/1.1" 301 262 (line 383)
2015-09-27 22:49:29,273 [INFO] [requests.packages.urllib3.connectionpool] _get_conn: Resetting dropped connection: www.easports.com (line 238)
2015-09-27 22:49:29,635 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /uk/fifa/ultimate-team/web-app HTTP/1.1" 200 15216 (line 383)
2015-09-27 22:49:29,803 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /fifa/api/isUserLoggedIn HTTP/1.1" 200 39 (line 383)
2015-09-27 22:49:29,918 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /iframe/fut16/?baseShowoffUrl=https%3A%2F%2Fwww.easports.com%2Ffifa%2Fultimate-team%2Fweb-app%2Fshow-off&guest_app_uri=http%3A%2F%2Fwww.easports.com%2Ffifa%2Fultimate-team%2Fweb-app&locale=en_US HTTP/1.1" 302 None (line 383)
2015-09-27 22:49:30,042 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /connect/auth?response_type=code&client_id=FUTWEB-CLIENT&state=166af50d94f2fc701387aaf703c5ffc0be8b7786&redirect_uri=https%3A%2F%2Fwww.easports.com%2Fiframe%2Ffut16%2Flogin_check&locale=en_GB&prompt=none HTTP/1.1" 302 0 (line 383)
2015-09-27 22:49:30,045 [INFO] [requests.packages.urllib3.connectionpool] _get_conn: Resetting dropped connection: www.easports.com (line 238)
2015-09-27 22:49:31,077 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /iframe/fut16/login_check?state=166af50d94f2fc701387aaf703c5ffc0be8b7786&code=QUORABMAOu_w2MhM1YKbfgeYvqpKKvOHNOs6Jz1N HTTP/1.1" 302 None (line 383)
2015-09-27 22:49:31,081 [INFO] [requests.packages.urllib3.connectionpool] _get_conn: Resetting dropped connection: www.easports.com (line 238)
2015-09-27 22:49:31,242 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /iframe/fut16/?baseShowoffUrl=https%3A%2F%2Fwww.easports.com%2Ffifa%2Fultimate-team%2Fweb-app%2Fshow-off&guest_app_uri=http%3A%2F%2Fwww.easports.com%2Ffifa%2Fultimate-team%2Fweb-app&locale=en_US HTTP/1.1" 200 5416 (line 383)
2015-09-27 22:49:31,243 [DEBUG] [root] __login__: b'<?xml version="1.0" encoding="utf-8"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xmlns:widget="http://www.netvibes.com/ns/" xmlns:wpp="http://www.easportsworld.com/wpp/1.0">\n<head>  \n<meta http-equiv="content-type" \n      content="text/html;charset=utf-8" />\n<title>Fifa Ultimate Team</title>\n\n<script type="text/javascript">\nvar HOST_DOMAIN = \'http://www.easports.com/\';\nvar EASW_ID = \'2330900019\';\nvar BUILD_CL = \'154187\';\nvar BASE_FUT_URL = \'https://utas.fut.ea.com\';\nvar STATIC_ASSET_URL = \'//www.easports.com/iframe/fut16\';\nvar CONTENT_URL = \'https://fifa15.content.easports.com\';\nvar TRANSLATIONS = {"captcha.hint":"Answer here","captcha.info.wait":"Next image in:","captcha.refresh":"Refresh Image","captcha.required.body":"Your FUT account has been temporarily disabled because too many actions have been taken. <br \\/> Please solve the question below to unlock your account.","captcha.required.title":"ACCOUNT LOCKED","card.desc.healing.all.injuries":"All Injuries","choose.language.title":"Choose Your Language","error.generic.body":"Please refresh your web browser to reload the FUT Web App.","error.generic.header":"Sorry, an error has occurred.","errormessage.blackout.body":"<br>FUT Web is unavailable until March 16th while we upgrade a number of areas in the app, including:<br>\\n<br>\\nNew Full Screen mode<br>\\nImproved Security Question<br>\\nSquad Copier<br>","errormessage.blackout.header":"Sorry","errormessage.concurrentsession.body":"Your account is currently logged into the Console or PC version of Ultimate Team. FUT Web is only available when you are logged out of your Console or PC. Please log out and try again in a few minutes.","errormessage.concurrentsession.header":"Logged In Elsewhere","errormessage.loginfail.body":"Sorry, there was an error logging into the FUT Web Application. We were not able to verify your FUT 16 data. Please wait a while and try again by refreshing your browser. For help, please go to <a href=\\"http:\\/\\/answers.ea.com\\/t5\\/FIFA-15\\/bd-p\\/FIFA-15\\" target=\\"_blank\\"> EA Answers HQ.<\\/a>","errormessage.loginfail.header":"Login Unavailable","errormessage.serverdown.body":"Our servers are temporarily down while we work on making things better.<br><br>Please come back later.","errormessage.serverdown.header":"Sorry","errormessage.throttle.body":"Sorry, we are currently experiencing high volumes of traffic on the FUT Web App. Please wait and try refreshing your browser in a few minutes.","errormessage.throttle.header":"Server Full","general.createmanage":"Create and manage your game squads on the web","general.fut10":"FIFA 10 Ultimate Team Online","general.here":"here","general.internalerror":"An internal error is preventing this page from displaying correctly. Please try again later.","general.login":"Log In","general.manage":"Manage Squads","general.manageaccount":"Manage Your Account","general.mustlogin":"You need to log in before you can access this feature.","general.mustlogin.fut":"You will need to login before you can access FIFA Ultimate Team Online.","general.noflash":"It looks like you don\'t have Flash Player installed. You can download it","general.nopersonteam":"Your currently selected persona does not have any FIFA Ultimate Team data associated with it. Please select a different persona or create a FUT Club on your console or PC.","general.nosquad":"It looks like you haven\'t created a FUT squad yet. Please create a squad in your copy of FIFA Ultimate Team and try again.","general.onconsole":"This action could not be taken as you are currently logged in to the console version.  Please logout from your console and try again.","general.onlinesquadman":"EA SPORTS FUT Web App","general.personaerror":"Problem retrieving personas","general.select":"Select","general.whichaccount":"Which account would you like to use?","image.downloadnow":"Download Now","image.howtostart":"Download FIFA 12 Ultimate Team on your console to start.","image.noteam":"You currently do not have a FIFA Ultimate Team.","language.brazil":"Portuguese (Brazil)","language.dutch":"Dutch","language.english":"English","language.french":"French","language.german":"German","language.italian":"Italian","language.notavailable":"Sorry, FIFA 12 Ultimate Team is not available in English.","language.polish":"Polish","language.russian":"Russian","language.select.header":"FIFA 16 Ultimate Team is not available in English. Click on any of the links below to use the FUT Web App in a supported language. Before playing, you will need to set up a Security Question on your Console or PC.","language.spanish":"Spanish","link.buy.cs_CZ":"http:\\/\\/www.easports.com\\/cz\\/fifa\\/koupit\\/CZ","link.buy.de_DE":"http:\\/\\/www.easports.com\\/de\\/fifa\\/custom\\/fifa15-bestellen","link.buy.default":"http:\\/\\/www.easports.com\\/fifa\\/buy","link.buy.en_AU":"http:\\/\\/www.easports.com\\/au\\/fifa\\/buy\\/AU","link.buy.en_GB":"http:\\/\\/www.easports.com\\/uk\\/fifa\\/buy\\/UK","link.buy.en_US":"http:\\/\\/www.easports.com\\/fifa\\/buy","link.buy.es_ES":"http:\\/\\/www.easports.com\\/es\\/fifa\\/comprar\\/ES","link.buy.es_MX":"http:\\/\\/www.easportsfifalatam.com\\/#!reservar\\/c1sau","link.buy.fr_FR":"http:\\/\\/www.easports.com\\/fr\\/fifa\\/acheter\\/FR","link.buy.it_IT":"http:\\/\\/www.easports.com\\/it\\/fifa\\/compra\\/IT","link.buy.ja_JP":"http:\\/\\/www.easports.com\\/jp\\/fifa\\/buy\\/JP","link.buy.nl_NL":"http:\\/\\/www.easports.com\\/nl\\/fifa\\/kopen\\/NL","link.buy.pl_PL":"http:\\/\\/www.easports.com\\/pl\\/fifa\\/kup\\/PL","link.buy.pt_BR":"http:\\/\\/www.easports.com\\/br\\/fifa\\/compre\\/BR","link.buy.ru_RU":"http:\\/\\/www.easports.com\\/ru\\/fifa\\/buy\\/RU","link.help.cs_CZ":"https:\\/\\/help.ea.com\\/cz\\/contact-us","link.help.de_DE":"https:\\/\\/help.ea.com\\/de\\/contact-us","link.help.default":"https:\\/\\/help.ea.com\\/contact-us","link.help.en_AU":"https:\\/\\/help.ea.com\\/au\\/contact-us","link.help.en_GB":"https:\\/\\/help.ea.com\\/uk\\/contact-us","link.help.en_US":"https:\\/\\/help.ea.com\\/en\\/contact-us","link.help.es_ES":"https:\\/\\/help.ea.com\\/es\\/contact-us","link.help.es_MX":"https:\\/\\/help.ea.com\\/mx\\/contact-us","link.help.fr_FR":"https:\\/\\/help.ea.com\\/fr\\/contact-us","link.help.it_IT":"https:\\/\\/help.ea.com\\/it\\/contact-us","link.help.ja_JP":"https:\\/\\/help.ea.com\\/jp\\/contact-us","link.help.nl_NL":"https:\\/\\/help.ea.com\\/nl\\/contact-us","link.help.pl_PL":"https:\\/\\/help.ea.com\\/pl\\/contact-us","link.help.pt_BR":"https:\\/\\/help.ea.com\\/br\\/contact-us","link.help.ru_RU":"https:\\/\\/help.ea.com\\/ru\\/contact-us","lockbox.checkout.close":"Close Origin Checkout","login.persona.btn.continue":"Continue","login.persona.info":"As a Returning FUT 15 user, you can choose which platform to start your FUT 16 experience on. You can change your platform with the Persona Selector after creating your first FUT 16 Club.","login.persona.instruction":"Select continue to start your FUT 16 Club, or choose a different platform from the list below.","login.persona.intro":"Previously, you played on ","login.persona.welcome":"Welcome back","message.loading.header":"Loading...","noAccessScreen.subtitle":"Early access to the FUT Web App for returning FUT 15 users has ended. Don\\u2019t worry, your players, items, and coins are still available!<br>\\nTo continue using FUT Web, you need to purchase a copy of FIFA 16 and login to Ultimate Team.","noAccessScreen.title":"Sorry, FUT Web access is no longer available. ","nosquad.boxpanel1.buttonlabel":"Buy Online Now","nosquad.boxpanel1.text":"Create your FUT Club in FIFA 16 for Xbox One, Xbox 360\\u2122, PlayStation\\u00ae4, PlayStation\\u00ae3, or PC","nosquad.boxpanel1.title":"Step 1","nosquad.boxpanel2.text":"Set up a Security Question on a Trusted Console or PC","nosquad.boxpanel2.title":"Step 2","nosquad.boxpanel3.text":"Refresh your browser and play. ","nosquad.boxpanel3.title":"Step 3","nosquad.subtitle1":"It looks like you don\'t have a FUT Club. <p>Join the community of millions by purchasing FIFA 16 and creating your first Ultimate Team.<\\/p>","nosquad.subtitle2":"Here\'s how to get started:<br><br>","nosquad.welcome":"No Ultimate Team","noSquadWithPersona.welcome":"EA Access Trial","phishing.answersmatch":"Both answers must match.","phishing.back":"Back","phishing.button.refresh":"Refresh","phishing.casesensitivereminder":"Remember: The answer to your security question is case sensitive","phishing.changepassword":"change your account password","phishing.charrules":"4-15 characters, case sensitive","phishing.choosequestion":"Choose a Security Question","phishing.concurrent":"You are still logged into Ultimate Team on your console or PC. Please log out and click on \'Continue\'.","phishing.continue":"Continue","phishing.createsuccess.message":"Thank you. Your security question has been successfully created.","phishing.createsuccess.title":"SAVE SUCCESSFUL","phishing.didntcreate.link":"I never created a security question","phishing.didntcreate.title":"DIDN\'T CREATE A SECURITY QUESTION?","phishing.didntcreate.warning":"If you didn\'t create or don\'t recognize the security question you are being asked there is a chance that someone else has unauthorized access to your account. We strongly recommend that you log into your EA account and <b><u>%1<\\/u><\\/b> as well as <b>reset your security question and answer<\\/b> by answering the information below. This information can be found when logged into your account on the console version of FIFA Ultimate Team.","phishing.error.numbersonly":"Your answer must only contain numbers","phishing.forgotanswer":"Forgot Answer?","phishing.forgotanswer.message":"If you cannot remember the answer to your question, you can lock your account and set up a new question the next time you log into a trusted console.","phishing.forgotanswer.title":"FORGOT ANSWER?","phishing.incorrecterror1":"Incorrect Answer. You have  ","phishing.incorrecterror2.plural":" tries remaining","phishing.incorrecterror2.singular":" try remaining","phishing.incorrecterror3":" until your account is locked out. Security answers are case sensitive.","phishing.lockaccount":"Lock Account","phishing.lockaccount.message":"Are you sure you want to lock your account?\\n\\nOnce you do so you will need to log into a trusted console and set up a new Security Question.","phishing.locked.incorrect":"One or more answers is incorrect.","phishing.locked.message":"Your Account has been locked. You can reset your question by <b>logging into a trusted console<\\/b>. If you are unable to do so, contact a <a href=\\"%1\\" target=\\"_blank\\">Game Advisor<\\/a>.","phishing.locked.rates1":"(6.4p \\/ min ex. VAT BT line - National Call Rate)","phishing.locked.rates2":"Toll Free North America","phishing.locked.rates3":"Local telephone rates apply","phishing.locked.title":"ACCOUNT LOCKED","phishing.locked.triesremaining.plural":"One or more answers is incorrect. You have !TRIES! tries remaining.","phishing.locked.triesremaining.singular":"One or more answers is incorrect. You have 1 try remaining.","phishing.minchars":"Your answer must be between 4 and 15 characters.","phishing.morelocations":"More locations\\u2026","phishing.mustselect":"You must select a question.","phishing.noquestion.title":"NO SECURITY QUESTION","phishing.numbersonly":"Numbers only","phishing.previouspage":"Previous Page","phishing.question1":"What is the last name of your favourite childhood friend?","phishing.question2":"What street did you live on when you had your first job?","phishing.question3":"What school did you attend in the eighth grade?","phishing.question4":"What is your oldest sibling\'s middle name?","phishing.question5":"What is the nickname of your school football team?","phishing.question6":"What city was your mother born in?","phishing.question7":"What was your childhood nickname?","phishing.questionsetup.message1":"To further secure your <b>Ultimate Team account<\\/b>, we ask that you set up a <b>Security Question and Answer<\\/b> on your console or PC.","phishing.questionsetup.message2":"<ul><li> after 30 days of inactivity<\\/li><li> using a different device, or<\\/li><li> a different web browser<\\/li><\\/ul>","phishing.questionsetup.title":"Security Question","phishing.questionsetup.warning":"<b>Remember<\\/b>: This information is used to secure your account - NEVER give out these details to anyone.","phishing.recovery.message":"In order to reset your security question and answer, fill in the questions below. This information can be found when logged into your account on the console version of FIFA Ultimate Team.<br><br><b>Warning:<\\/b> Too many incorrect tries will lock your account.","phishing.recovery.question1":"How many players are in your club?","phishing.recovery.question2":"How many staff does your club have?","phishing.recovery.question3":"How many kits does your club have?","phishing.refreshing":"Refreshing...","phishing.resetquestionsetup.message":"Success! You can now reset your security question and answer below.","phishing.retypeanswer":"Re-type your Answer","phishing.save":"Save","phishing.submit":"Submit","phishing.typeanswer":"Type your Answer","phishing.validation.message":"Either 30 days have passed since your last login, or this web browser or machine has not been used with this account. <p> In order to play FUT Web please provide an answer to the security question above.<\\/p>","platform.360":"Xbox LIVE&reg","platform.pc":"PC","platform.ps3":"PlayStation&regNetwork","search.fut.2012":"FIFA 2012 Ultimate Team","timespan.dayshours":"%1 Days %2 Hours","timespan.hoursminutes":"%1 Hours %2 Mins","timespan.minutesseconds":"%1 Mins %2 Secs","timespan.seconds":"%1 Seconds","trialUserScreen.boxpanel1.buttonlabel":"Buy FIFA 16","trialUserScreen.boxpanel1.text":"Login to Ultimate Team in FIFA 16 for Xbox One, Xbox 360\\u2122, PlayStation\\u00ae4, PlayStation\\u00ae3, or PC","trialUserScreen.subtitle":"Sorry, EA Access Trial users do not have access to the FUT Web App. Purchase a full copy of FIFA 16 today in order to use the FUT Web App.","web.platform.360":"Xbox LIVE&#174;","web.platform.console.ps3":"PlayStation\\u00ae3","web.platform.console.ps3.short":"PS3\\u2122","web.platform.console.ps4":"PlayStation\\u00ae4","web.platform.console.ps4.short":"PS4\\u2122","web.platform.console.xbox360":"Xbox 360\\u2122","web.platform.console.xboxOne":"Xbox One","web.platform.network.playstationplus":"PlayStation\\u00aePlus","web.platform.network.xboxlive":"Xbox Live Gold","web.platform.pc":"PC","web.platform.ps3":"PlayStation&#174;Network"};\nvar GUEST_APP_URI = \'http://www.easports.com/fifa/ultimate-team/web-app\';\nvar LOCKBOX_V3_URL = \'https://www.origin.com/store/addonstore/fifa-16/pc-download/currencies?profile=odc-fifa-16-real\';\n\n  (function() {\n    var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\n    ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n    var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n  })();\n</script>\n\n    <script src="//www.easports.com/iframe/fut16/js/961ff44.js?cl=154187" type="text/javascript"></script>\n\n\n\n\n  \t<link href="//www.easports.com/iframe/fut16/css/7ac5832.css" rel="stylesheet" type="text/css" />\n  </head>\n  \t<body >\n\t<div class="errorContainer clearfix" style="margin-left: 14px;">\n        <div class = "errorBoxSideLeft">\n        </div>\n            <div class="errorBoxText">\n                <h1 class="errorTextTitle"></h1>\n                <p class="errorTextBody">                \n                </p>\n            </div>\n    </div>\n\t</body>\n</html>\n' (line 240)
2015-09-27 22:49:31,245 [INFO] [requests.packages.urllib3.connectionpool] _new_conn: Starting new HTTPS connection (1): www.easports.com (line 735)
2015-09-27 22:49:31,284 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /iframe/fut16/bundles/futweb/web/flash/xml/site_config.xml?cl=154187 HTTP/1.1" 200 2073 (line 383)
2015-09-27 22:49:31,513 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "GET /iframe/fut16/p/ut/game/fifa16/user/accountinfo?_=1443386971288 HTTP/1.1" 200 534 (line 383)
2015-09-27 22:49:31,513 [DEBUG] [root] __login__: b'{"userAccountInfo":{"personas":[{"personaId":409433894,"personaName":"REPLACED_FOR_SECURITY_REASONS","returningUser":1,"trial":false,"userState":null,"userClubList":[{"year":"2015","assetId":112020,"teamId":112020,"lastAccessTime":1440846163,"platform":"pc","clubName":"Enfield Stanley","clubAbbr":"Enf","established":1431276491,"divisionOnline":1,"badgeId":6000545,"skuAccessList":{"FFA15PCC":1440846163}},{"year":"2015","assetId":0,"teamId":0,"lastAccessTime":1441414800,"platform":"pc","clubName":"Enfield Stanley","clubAbbr":"Enf","established":1431276491,"divisionOnline":0,"badgeId":0,"skuAccessList":null}]},{"personaId":250291508,"personaName":"REPLACED_FOR_SECURITY_REASONS","returningUser":1,"trial":false,"userState":null,"userClubList":[{"year":"2014","assetId":898,"teamId":898,"lastAccessTime":1413300133,"platform":"ps3","clubName":"Disco Ninjas","clubAbbr":"DNJ","established":1400343093,"divisionOnline":1,"badgeId":6000500,"skuAccessList":{"FFA14PS3":1413300133,"FFA14KTL":1403571841}},{"year":"2015","assetId":1337,"teamId":1337,"lastAccessTime":1443302135,"platform":"ps3","clubName":"Disco Ninjas","clubAbbr":"DSN","established":1400343093,"divisionOnline":8,"badgeId":6000019,"skuAccessList":{"FFA15PS4":1443302135,"FFA15PS3":1443302135}},{"year":"2016","assetId":45,"teamId":45,"lastAccessTime":1443386512,"platform":"ps3","clubName":"Disco Ninjas","clubAbbr":"DSN","established":1400343093,"divisionOnline":1,"badgeId":6000014,"skuAccessList":{"FFA16PS4":1443386512}},{"year":"2012","assetId":0,"teamId":0,"lastAccessTime":1317419807,"platform":"ps3","clubName":"CALNO","clubAbbr":"CAL","established":1302887229,"divisionOnline":0,"badgeId":0,"skuAccessList":null},{"year":"2014","assetId":0,"teamId":0,"lastAccessTime":1409292000,"platform":"ps3","clubName":"Disco Ninjas","clubAbbr":"DNJ","established":1400343093,"divisionOnline":0,"badgeId":0,"skuAccessList":null},{"year":"2015","assetId":0,"teamId":0,"lastAccessTime":1441414800,"platform":"ps3","clubName":"Disco Ninjas","clubAbbr":"DSN","established":1400343093,"divisionOnline":0,"badgeId":0,"skuAccessList":null}]}]}}' (line 262)
2015-09-27 22:49:32,373 [DEBUG] [requests.packages.urllib3.connectionpool] _make_request: "POST /iframe/fut16/p/ut/auth HTTP/1.1" 200 59 (line 383)
2015-09-27 22:49:32,373 [DEBUG] [root] __login__: b'{"debug":"","string":"","code":"403","reason":""}' (line 288)

The code to login:

fut.Core('secret', 'secret', 'secret', 'ps4', '562281', None, True, "cookies.txt")

Any clue what this means?

oczkers commented 9 years ago

There is no club for ps4 in Your account_info, try platform=ps3

nokai commented 9 years ago

Try login with the PS4 and it says?

JKetelaar commented 9 years ago

@oczkers I tried that too. I'm pretty sure there is a club in my platform (ps4). Been playing FUT since like 2014 and downloaded FUT 16 since day one on my PS4.

Do you got any other idea?

JKetelaar commented 9 years ago

Maybe this helps. When doing the same process in Java I get the following error

WARNING: Invalid cookie header: "Set-Cookie: ". Cookie name may not be empty

In other words, there's a cookie trying to be set that's empty

Same results:

{"debug":"","string":"","code":"403","reason":""}
JKetelaar commented 9 years ago

Figured the issue:

rc.json()['userAccountInfo']['personas'][0]

But my JSON has two userAccountInfo objects. So this would have to be achieved by looping thorugh both userAccountInfo arrays and see which one has what.

oczkers commented 9 years ago

Most probably something is wrong here https://github.com/oczkers/fut/blob/master/fut/core.py#L274-L285 (sku, clientversion, platform or even authcode) but we have to see valid playstation communication with server, otherwise it's blind guess.

@JKetelaar Does it work after You change persona, ps3 or ps4?

Motherfeef commented 9 years ago

I seem to experience the exact same error after @oczkers update (fix mutliple personas #146).

How I log in: fut = fut.Core('email', 'password', 'secret', platform='ps3', code='**', emulate='and', debug=True)

Error: File "C:\Python27\lib\site-packages\fut-0.1.2-py2.7.egg\fut\core.py", line 303, in login self.r.headers['X-UT-SID'] = self.sid = rc['sid'] KeyError: 'sid'

Log: 2015-10-14 03:53:37,851 [DEBUG] [root] login: {"debug":"","string":"","code":"403","reason":""} (line 289)

I am on Ps4, try'd changing platform to both Ps3 as Ps4, won't make any difference.

I have 2 accounts registered: Account #1 --> Fifa 15. Account #2 --> Fifa 15 & Fifa 16

oczkers commented 9 years ago

@Motherfeef

Could You show me personas from UserAccountInfo?

JKetelaar commented 9 years ago

The issue relies on: rc.json()['userAccountInfo']['personas'][0]

This simply gets the first out of the array, while there might be more than one.

oczkers commented 9 years ago

@JKetelaar First one is latest used so it should work but there is missmatch in platform strings (for example xbox360 for nucleusPlatform but 360 in personas)

Motherfeef commented 9 years ago

@oczkers

Sure, so I have 2 persona's and printing rc returns the following array.

1) When using --> "rc = [i for i in rc.json()['userAccountInfo']['personas'] if i['userClubList'][0]['platform'] == platform][0]":

{u'personaId': xxxxxxx1, u'userClubList': [{u'established': xxxxxxxx, u'badgeId': xxxxxxxx, u'assetId': xxxxxxxx, u'lastAccessTime': xxxxxxxx, u'platform': u'ps3', u'teamId': xxxxxxxx, u'clubAbbr': u'00000000', u'year': u'2015', u'skuAccessList': {u'FFA15PS4': ****, u'FFA15PS3': xxxxxxxx}, u'divisionOnline': 4, u'clubName': u'xxxxxxxx'}], u'personaName': u'xxxxxxxx', u'trial': False, u'returningUser': 0, u'userState': None}

2) When using --> "rc = rc.json()['userAccountInfo']['personas'][0]":

It returns the exact same result as above.

3) When using --> "rc = rc.json()['userAccountInfo']['personas'][1]":

{u'personaId': xxxxxxx4, u'userClubList': [{u'established': xxxxxxxx, u'badgeId': xxxxxxxx, u'assetId': xxxxxxxx, u'lastAccessTime': xxxxxxxx, u'platform': u'ps3', u'teamId': xxxxxxxx, u'clubAbbr': u'xxxxxxxx', u'year': u'2015', u'skuAccessList': {u'FFA15PS4': xxxxxxxx, u'FFA15PS3': xxxxxxxx}, u'divisionOnline': 8, u'clubName': u'xxxxxxxx'}, {u'established': xxxxxxxx, u'badgeId': xxxxxxxx, u'assetId': xxxxxxxx, u'lastAccessTime': xxxxxxxx, u'platform': u'ps3', u'teamId': xxxxxxxx, u'clubAbbr': u'xxxxxxxx', u'year': u'2016', u'skuAccessList': {u'FFA16PS4': xxxxxxxx}, u'divisionOnline': 4, u'clubName': u'xxxxxxxx'}, {u'established': xxxxxxxx, u'badgeId': xxxxxxxx, u'assetId': xxxxxxxx, u'lastAccessTime': xxxxxxxx, u'platform': u'ps3', u'teamId': xxxxxxxx, u'clubAbbr': u'xxxxxxxx', u'year': u'2015', u'skuAccessList': None, u'divisionOnline': 0, u'clubName': u'xxxxxxxx'}], u'personaName': u'xxxxxxxx', u'trial': False, u'returningUser': 1, u'userState': None}

As you can tell from 'skuAccessList' my "Fifa16" account is in the second persona.

Please let me know if you require more information. Not sure if this is what you mean.

Motherfeef commented 9 years ago

@oczkers

{'priorityLevel': 4, 'locale': 'en-GB', 'nucleusPersonaId': xxxxxxxx, 'sku': 'FUT16AND', 'clientVersion': 11, 'isReadOnly': False, 'nucleusPersonaDisplayName': u'xxxxxxxx', 'identification': {'AuthCode': ''}, 'gameSku': 'FFA16PS4', 'method': 'authcode', 'nucleusPersonaPlatform': 'ps3'}

oczkers commented 9 years ago

Thanks for info, now we're itering over personas until game_sku is found in specific club. Let me if this works for all of You (two+ clubs on same platform might be a problem).

Motherfeef commented 9 years ago

@oczkers

Edit Never mind! I believe it works now.

Make sure to use platform=PS4 when on PS4.

oczkers commented 8 years ago

I supose it's already fixed