Skryptozakładka do logowania via Google OpenID

13 lipca 2009, 11:47:19

Jak wiadomo, implemetacja OpenID google nie jest najłatwiejsza w użyciu. Google używa tzw. "Directed Identity" z OpenID 2.0 - do logowania używany jest ten sam dla wszystkich url, właściwy identyfikator OpenID użytkownika ustalany jest po uwierzytelnieniu u dostawcy OpenID. Identyfikator OpenID dla google to https://www.google.com/accounts/o8/id - jak widać średnio wygodny do zapamiętania i wpisywania. I właśnie dlatego powstała niniejsza skryptozakładka - szuka na stronie formularza logowania, ustawia identyfikator OpenID i wysyła formularz. Oczywiście można użyć dla dowolnego innego dostawcy OpenID, zmieniając URL.

Tutaj gotowa skryptozakładka: Google OpenID

A tak wygląda w bardziej strawnej postaci:

 
(function() {
  var inputs=document.getElementsByTagName('input');
  for(i=0;i<inputs.length;i++){
    if(inputs[i].type=="text" && inputs[i].name.indexOf('openid')>=0) {
      var f = inputs[i];
      f.value = 'https://www.google.com/accounts/o8/id';
      while(f && f.tagName!='FORM') f=f.parentNode;
      if(f) f.submit();
      return;
    }
  }
  alert('Brak formularza OpenID');
})();
 

Skryptozakładka sprawdzona w FF3.5 i Chromium.

Tagi: google openid skryptozakładka bookmarklet