THIS IS A STATIC MIRROR OF USERSCRIPTS.ORG - LOGINS DO NOT WORK

Google Account Multi-Login

By Jarett Last update Oct 6, 2009 — Installed 368,794 times.

Summary

Userscripts.org community-based issue reporting. Members of the site vote and comment on potential issues of this script.


Category Votes Comments
Broken 2 of 4 voted yes 10 comments add comment
Copy no votes 0 comments add comment
Harmful no votes 0 comments add comment
Spam 1 of 4 voted yes 2 comments add comment
Vague no votes 0 comments add comment



Details

Votes about if this script is broken

Yes it is broken No it isn't broken

Comments about if this script is broken

aa jr Posted Aug 14, 2010 12:18pm

aa jr followup information:

I am using Firefox 3.6.8.

I uninstalled and re-installed script with the same results.

I can use the "remove" option to delete the three gmail accounts from the change user dialog box of the second user of computer's unrelated gmail account but they reappear when machine is rebooted.

aa jr Posted Aug 14, 2010 2:40am

Hi~ This script works fine for my three gmail user accounts.

The problem is that they also show up on a fourth gmail account of a second user of the computer although this account was never configured or added to the first three.

Is there any way to "block" the three configured accounts from showing up under a change address dialog box that just appeared on the second user's account?

The password for the second account is different from the common password for the three configured accounts.

Thanks.

saravananrajabojan Posted Jan 31, 2010 6:57am

Hi. first of all, good work Jarett...! this script is very great..

but recently i am getting errors when i try to switch. the error is as follows
"

We're sorry. It seems there is a problem. Please try using Gmail with a supported browser. If you're encountering this error while using a supported browser, we suggest alerting your Internet Service Provider (ISP) that a proxy is failing to accept cookies on HTTP redirects.

Click here to return to Gmail. You'll need to sign in to your account again.

This happens only with gmail. doesnt happen whe i use google reader or news website..

an updates would be great..
Thanks.

Jarett Posted Oct 4, 2009 3:55am

Fixed now, guys.

GeminiAlpha Posted Oct 1, 2009 7:25pm

about september 27, 2009 this script Google Account Multi-Login' stopped working'.
user switching doesn't work anymore. Please have a look at tab 'discussions'.
rudolf

Steven Rothman Posted Jul 24, 2009 6:18pm

To follow up on my June 30 comment: the new version fails the same way, and it's very repeatable. If I'm logged into GMail account #1, I can switch to GMail account #2 without a problem. If I then try to switch back to #1, I get the failure. Below are the two error messages. The first is from GMail. After the failure, if I just enter the Gmail URL into Firefox, I get the same error. The second message I get from Firefox if I instead go to the main Google [search] page, and then click on the GMail link at the top. I can clear out the problem by deleting all the cookies for google.com.

/steve

============= First Error, from GMail ==========================

We've detected a problem

We're sorry. It seems there is a problem. Please try using Gmail with a supported browser. If you're encountering this error while using a supported browser, we suggest alerting your Internet Service Provider (ISP) that a proxy is failing to accept cookies on HTTP redirects.

Click here to return to Gmail. You'll need to sign in to your account again.

============== Second Error, from Firefox ==========================

Redirect Loop

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

The browser has stopped trying to retrieve the requested item. The site is redirecting the request in a way that will never complete.

* Have you disabled or blocked cookies required by this site?
* NOTE: If accepting the site's cookies does not resolve the problem, it is likely a server configuration issue and not your computer.

MJ Hufford Posted Jul 11, 2009 4:24pm

Not working in Firefox 3.5

Steven Rothman Posted Jun 30, 2009 11:15pm

For the past several weeks, after doing several user switches, Google/Gmail gives this error message:
We're sorry. It seems there is a problem. Please try using Gmail with a supported browser. ...

If I turn off (disable) the script, I never get the failure, even after doing many manual user changes (log out and the log in as a different user). When I re-enable the script, after a few user changes, the failure is back. I suspect, but I don't have proof, that the failure started with a Gmail update. I'm running Firefox 3.0.11, and I have a fair number of extensions.

I've found that if I delete all the cookies for google.com, then it works again, for a while.

I'll be happy to collect data about this problem for you, but I don't know what to collect.

Jarett Posted May 8, 2009 4:47am

If you have two copies of the script installed:

  1. Disable one of the scripts
  2. Refresh
  3. Do a manual update check (right click the little monkey face > User Script Commands > Google Account Multi-Login - Manual Update Check) If it works right, delete the disabled script.

Richard Davies Posted May 6, 2009 4:21pm

Most recent version continually prompts you to update the script every time you restart the browser.

Comments about if this script is copy

Comments about if this script is harmful

Votes about if this script is spam

Yes it is spam No it isn't spam

Comments about if this script is spam

`Mods Posted May 12, 2009 10:39pm

not spam

karthiksiri143 Posted Feb 18, 2008 10:56am

1. // ==UserScript==
2. // @name Google Account Multi-Login
3. // @namespace [http://eveningnewbs.googlepages.com](http://eveningnewbs.googlepages.com/)
4. // @description Replaces "Sign Out" link on Google pages with a select box of accounts.
5. // @include http://*.google.tld/*
6. // @include https://*.google.tld/*
7. // @include http://google.tld/*
8. // @include https://google.tld/*
9. // @exclude http*://mail.google.tld/*ui=1*
10. // ==/UserScript==
11.
12. // Begin Script Update Checker code
13. var version_scriptNum = 16341; // Change this to the number given to the script by userscripts-mirror.org (check the address bar)
14. var version_timestamp = 1203301382375; // Used to differentiate one version of the script from an older one. Use the Date.getTime() function to get a value for this.
15. function updateCheck(forced) {if((forced)||(parseInt(GM_getValue("lastUpdate", "0")) + 86400000 <= (new Date().getTime()))) {try {GM_xmlhttpRequest({method: "GET",url: "<a href="https://userscripts-mirror.org/scripts/review/">https://userscripts-mirror.org/scripts/review/</a>" + version_scriptNum + "?" + new Date().getTime(),headers: {'Cache-Control': 'no-cache'},onload: function(xhrResponse) {GM_setValue("lastUpdate", new Date().getTime() + ""); var rt = xhrResponse.responseText.replace(/??/gm, " ").replace(/

  • /gm, "\n").replace(/<[^>]*>/gm, ""); var scriptName = (/@name\s*(.*?)\s*$/m.exec(rt))[1]; GM_setValue("targetScriptName", scriptName); if (parseInt(/version_timestamp\s*=\s*([0-9]+)/.exec(rt)[1]) > version_timestamp) {if (confirm("There is an update available for the Greasemonkey script \"" + scriptName + ".\"\nWould you like to go to the install page now?")) {GM_openInTab("https://userscripts-mirror.org/scripts/show/" + version_scriptNum);}} else if (forced) {alert("No update is available for \"" + scriptName + ".\"");}}});} catch (err) {if (forced) {alert("An error occurred while checking for updates:\n" + err);}}}} GM_registerMenuCommand(GM_getValue("targetScriptName", "???") + " - Manual Update Check", function() {updateCheck(true);}); updateCheck(false);
    16. // End Script Update Checker code
    17.
    18. if (document.domain.indexOf("google.") == -1) return;
    19.
    20. // Load persistent user data
    21. if (!GM_getValue)
    22. {alert("You need the newest version of Greasemonkey to run this script. Please upgrade."); return;}
    23. usernames = GM_getValue("usernames", "").split(",");
    24. passwords = GM_getValue("passwords", "").split(",");
    25. autologin = GM_getValue("autologin", "");
    26. if (typeof(autologin) == "boolean") // For backwards compatibility with older versions of the script
    27. {
    28. var al = new Array(usernames.length);
    29. for (var i = 0; i < usernames.length; i++)
    30. {al[i] = "false";}
    31. autologin = al;
    32. GM_setValue("autologin", al.join(","));
    33. }
    34. else
    35. {autologin.split(",");}
    36.
    37. function makeUserList(prefix, suffix, numbered)
    38. {
    39. if (usernames[0] == "")
    40. return "";
    41. a = "";
    42. for (i = 0; i < usernames.length; i++)
    43. {
    44. a += prefix;
    45. if (numbered)
    46. a += (i+1) + ") "
    47. a += usernames[i] + suffix;
    48. }
    49. return a;
    50. }
    51.
    52. function getService()
    53. {
    54. if (document.domain.indexOf("docs.google") != -1)
    55. {return "writely";}
    56. else if (document.location.href.indexOf("/webmasters/") != -1)
    57. {return "sitemaps";}
    58. else if (document.location.href.indexOf("/calendar/") != -1)
    59. {return "cl";}
    60. else if (document.domain.indexOf("picasaweb.google") != -1)
    61. {return "lh2";}
    62. else
    63. {return "mail";}
    64. }
    65.
    66. function onSelectChange()
    67. {
    68. var i = this.selectedIndex - 2;
    69. var len = this.length;
    70. if ((i < len - 5) && ( i >= 0))
    71. {
    72. var un = usernames[i];
    73. var pw = passwords[i];
    74. var al = autologin[i];
    75. if (pw == "")
    76. {pw = prompt('Password for ' + un + ":");}
    77. if (pw != null)
    78. {
    79. this.parentNode.Email.value = un;
    80. this.parentNode.Passwd.value = pw;
    81. this.parentNode.PersistentCookie.value = al;
    82. this.parentNode.submit();
    83. }
    84. }
    85. else if (i == len - 5)
    86. {
    87. var u = prompt('Username:');
    88. if (u != null)
    89. {var p = prompt('Password (leave blank to prompt every time):');}
    90. if ((u != null) && (p != null))
    91. {
    92. if ((u.indexOf(',') != -1) || (p.indexOf(',') != -1))
    93. {alert('Usernames and passwords cannot contain commas.');}
    94. else
    95. {
    96. var a = confirm('Turn on autologin for this account?') + "";
    97. if ((usernames[0] == "") || (GM_getValue("usernames", "") == ""))
    98. {var u2 = u; var p2 = p; var a2 = a;}
    99. else
    100. {
    101. var u2 = GM_getValue('usernames') + ',' + u;
    102. var p2 = GM_getValue('passwords') + ',' + p;
    103. var a2 = GM_getValue('autologin') + ',' + a;
    104. }
    105. GM_setValue('usernames', u2); usernames = u2.split(',');
    106. GM_setValue('passwords', p2); passwords = p2.split(',');
    107. GM_setValue('autologin', a2); autologin = a2.split(',');
    108. for (var j = 0; j < 4; j++)
    109. {this.options[len - j] = new Option(this.options[len-j-1].text);}
    110. this.options[len-4] = new Option(u);
    111. this.options[len-3].disabled = "disabled";
    112. alert('Account added.');
    113. }
    114. }
    115. this.selectedIndex = 0;
    116. }
    117. else if (i == len - 4)
    118. {
    119. if (usernames[0] == "")
    120. {alert("No accounts to remove.");}
    121. else
    122. {
    123. u = parseInt(prompt('Enter the number of the account to be removed:' + makeUserList("\n", "", true)));
    124. if (isNaN(u)) {}
    125. else if ((u < 1) || (u > usernames.length))
    126. {alert('Invalid option.')}
    127. else
    128. {
    129. u = usernames[u-1];
    130. var un = GM_getValue('usernames').split(',');
    131. var pw = GM_getValue('passwords').split(',');
    132. var al = GM_getValue('autologin').split(',');
    133. var j = -1;
    134. for (var k = 0; k < un.length; k++)
    135. {if(un[k]==u) j=k;}
    136. if (j == -1)
    137. {alert('Account appears to have already been removed. Refresh the page to update account list.');}
    138. else
    139. {
    140. un.splice(j, 1);
    141. pw.splice(j, 1);
    142. al.splice(j, 1);
    143. GM_setValue('usernames', un.join(',')); usernames = un;
    144. GM_setValue('passwords', pw.join(',')); passwords = pw;
    145. GM_setValue('autologin', al.join(',')); autologin = al;
    146. this.remove(j+2);
    147. alert('Account removed.');
    148. }
    149. }
    150. }
    151. this.selectedIndex = 0;
    152. }
    153. else if (i == len - 3)
    154. {
    155. if (document.domain.indexOf("mail.google") != -1)
    156. {var s = '[https://mail.google.com/mail/?logout';](https://mail.google.com/mail/?logout' rel=)}
    157. else if (document.domain.indexOf("docs.google") != -1)
    158. {var s = '[https://docs.google.com/logout';](https://docs.google.com/logout' rel=)}
    159. else if (document.location.href.indexOf("/calendar/") != -1)
    160. {var s = '[https://www.google.com/calendar/logout';](https://www.google.com/calendar/logout' rel=)}
    161. else if (document.domain.indexOf("picasaweb.google") != -1)
    162. {var s = '[http://picasaweb.google.com/bye?continue=https%...](http://picasaweb.google.com/bye?continue=https%3A%2F%2Fwww.google.com%2Faccounts%2FLogout%3Fcontinue%3Dhttp%253A%252F%252Fpicasaweb.google.com' rel=)}
    163. else
    164. {var s = 'http://www.google.com/accounts/Logout?continue=' + escape(window.location.href.split("#")[0]);}
    165. document.location.href = s;
    166. }
    167. }
    168.
    169. function getSelectBox()
    170. {
    171. selectBox = document.createElement("span");
    172. selectBox.innerHTML = '<form><select><option>Change User...</option><option>——</option>' + makeUserList('<option>', '</option>', false) + '<option>——</option><option>Add Account...</option><option>Remove Account...</option><option>Sign Out</option></select><input><input /><input /><input /><input /></form>';
    173. return selectBox;
    174. }
    175.
    176. function findLink(p, win)
    177. {
    178. var langs = new Array("sign out", "keluar", "surt", "log ud", "abmelden", unescape("logi v%E4lja"), "salir", unescape("d%E9connexion"), "odjava", "odjavite se", "esci", unescape("skr%E1 %FAt"), "iziet", "atsijungti", unescape("i%u0161siregistruoti"), unescape("kil%E9p%E9s"), "logg av", "logg ut", "afmelden", "wyloguj", "sair", unescape("terminar sess%E3o"), "deconectati-va", unescape("ie%u015Fire"), unescape("odhl%E1si%u0165 sa"), "odjava", "kirjaudu ulos", "logga ut", unescape("thoa%u0301t"), unescape("tho%E1t"), unescape("%E7%u0131k%u0131%u015F"), "oturumu kapat", unescape("odhl%E1sit"), unescape("%u03AD%u03BE%u03BF%u03B4%u03BF%u03C2"), unescape("%u0437%u0430%u043A%u043E%u043D%u0447%u0438%u0442%u044C%20%u0440%u0430%u0431%u043E%u0442%u0443"), unescape("%u0432%u044B%u0439%u0442%u0438"), unescape("%u043E%u0434%u0458%u0430%u0432%u0438%u0442%u0435%20%u0441%u0435"), unescape("%u0432%u0438%u0439%u0442%u0438"), unescape("%u0438%u0437%u0445%u043E%u0434"), unescape("%u05D4%u05EA%u05E0%u05EA%u05E7"), unescape("%u05E6%u05D0"), unescape("%u062A%u0633%u062C%u064A%u0644%20%u0627%u0644%u062E%u0631%u0648%u062C"), unescape("%u0938%u093E%u0907%u0928%20%u0906%u0909%u091F%20%u0915%u0930"), unescape("%u0928%u093F%u0930%u094D%u0917%u092E"), unescape("%u0E2D%u0E2D%u0E01%u0E08%u0E32%u0E01%u0E23%u0E30%u0E1A%u0E1A"), unescape("%u767B%u51FA"), unescape("%u9000%u51FA"), unescape("%u30ED%u30B0%u30A2%u30A6%u30C8"), unescape("%uB85C%uADF8%uC544%uC6C3"));
    179. try
    180. {
    181. var links = p.getElementsByTagName("a");
    182. for (var i = 0; i < links.length; i++)
    183. {
    184. for (var j = 0; j < langs.length; j++)
    185. {
    186. if (links[i].innerHTML.toLowerCase().match(langs[j]))
    187. {
    188. links[i].parentNode.replaceChild(getSelectBox(), links[i]);
    189. win.document.forms.namedItem("gmLoginForm").elements.namedItem("gmSelectLogin").addEventListener('change', onSelectChange, true);
    190. }
    191. }
    192. }
    193. }
    194. catch (e) {;}
    195. }
    196.
    197. window.addEventListener('load', function()
    198. {
    199. if ((document.domain.indexOf("mail") != -1) && (unsafeWindow.gmonkey))
    200. {
    201. unsafeWindow.gmonkey.load("1.0", function()
    202. {
    203. var gmAPI = unsafeWindow.gmonkey.get("1.0");
    204. findLink(gmAPI.getMastheadElement().parentNode, window);
    205. });
    206. }
    207. else
    208. {
    209. if (frames.length == 0)
    210. {var f = new Array(window);}
    211. else
    212. {
    213. var f = new Array(frames.length + 1);
    214. for (var k = 0; k < frames.length; k++)
    215. {f[k] = frames[k];}
    216. f[f.length - 1] = window;
    217. }
    218. for (var j = 0; j < f.length; j++)
    219. {findLink(f[j].document, f[j]);}
    220. }
    221. }, false);
  • Comments about if this script is vague