FWIW, I deleted and recreated the account and everything worked just
fine, although this wasn't the path I initially intended to go take.

Anyway, before deleting the account I found this nifty tool called
'account-console' from the 'account-plugin-tools' package.  Prior to
deletion, this is what I would get from 'account-console show <ID>':

                                         
joao@tardis:~$ account-console show 1
account: id 1, enabled, provider: google
  Global settings:
    CredentialsId: 1 (<class 'int'>)
    auth/mechanism: web_server (<class 'str'>)
    auth/method: oauth2 (<class 'str'>)
    auth/oauth2/user_agent/AuthPath: o/oauth2/auth (<class 'str'>)
    auth/oauth2/user_agent/ClientId: 
759250720802-4sii0me9963n9fdqdmi7cepn6ub8luoh.apps.googleusercontent.com 
(<class 'str'>)
    auth/oauth2/user_agent/Host: accounts.google.com (<class 'str'>)
    auth/oauth2/user_agent/RedirectUri: https://wiki.ubuntu.com/ (<class 'str'>)
    auth/oauth2/user_agent/ResponseType: token (<class 'str'>)
    auth/oauth2/user_agent/Scope: ['https://docs.google.com/feeds/', 
'https://www.googleapis.com/auth/googletalk', 
'https://www.googleapis.com/auth/userinfo.email', 
'https://www.googleapis.com/auth/userinfo.profile', 
'https://picasaweb.google.com/data/'] (<class 'list'>)
    auth/oauth2/user_agent/TokenPath: o/oauth2/token (<class 'str'>)
    auth/oauth2/web_server/AllowedSchemes: ['https', 'http'] (<class 'list'>)
    auth/oauth2/web_server/AuthPath: o/oauth2/auth (<class 'str'>)
    auth/oauth2/web_server/ClientId: 
759250720802-4sii0me9963n9fdqdmi7cepn6ub8luoh.apps.googleusercontent.com 
(<class 'str'>)
    auth/oauth2/web_server/ClientSecret: [REDACTED] (<class 'str'>)
    auth/oauth2/web_server/Host: accounts.google.com (<class 'str'>)
    auth/oauth2/web_server/RedirectUri: https://wiki.ubuntu.com/ (<class 'str'>)
    auth/oauth2/web_server/ResponseType: code&access_type=offline (<class 
'str'>)
[TRIM]

See last line 'ResponseType' containing 'code&access_type=offline'.  I
also found this in '~/.config/libaccounts-glib/accounts.db', table
'Settings' (e.g., 'select service,key,value from Settings where id
=<ACCOUNT-ID>').

After recreating the account, 'account-console' now shows pretty much
the same with two different key differences:


auth/oauth2/web_server/AuthPath: o/oauth2/auth?access_type=offline (<class 
'str'>)

and

auth/oauth2/web_server/ResponseType: code (<class 'str'>)


which do reflect the contents of /usr/share/accounts/providers/google.provider


Finally, after looking a bit further into the code, I'm inclined to believe 
that this may have something to do with class QUrl being stripping '&' and 
substituting it for a % control char -- given QUrl being used throughout, I 
wasn't able to pinpoint the exact place where this is happening.

If this eventually happens to my other google account, I intend to
backup the sqlite db and attempt an in-place fix by adjusting the values
for keys of ResponseType' and 'AuthPath'.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1236881

Title:
  Google Account Plugin fails to authenticate

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/account-plugins/+bug/1236881/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to