Re: Review Request 129239: Add support for X-OAuth2 authentication in Jabber protocol
Pali Rohár <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kopete |
|---|---|
| Message-ID | <[email protected]> |
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129239/
-----------------------------------------------------------
(Updated okt. 21, 2016, 8:14 popoludní)
Review request for Kopete.
Bugs: 354473
http://bugs.kde.org/show_bug.cgi?id=354473
Repository: kopete
Description
-------
Add support for X-OAuth2 authentication in Jabber protocol
Based on Psi demo code from:
https://github.com/psi-im/iris/issues/35
https://github.com/psi-plus/main/blob/master/patches/dev/xoauth2-support-demo.diff
REVIEW: 129239
BUG: 354473
FIXED-IN: 16.12
Diffs
-----
CMakeLists.txt a2bc3840904c49c1fd854c1675d66474736d58b1
protocols/CMakeLists.txt d631c239a0a02fb23f2ffb3a39b6a0a2fda8022e
protocols/jabber/CMakeLists.txt 41f2b5db906757f492cdc6f1460372b59e12f437
protocols/jabber/jabberaccount.cpp a72afea1cb22502d73c4a3317c3af4aafb8e7937
protocols/jabber/jabberclient.h 2737e05519fd5eddbd859d130ad14a2cab8b3bcc
protocols/jabber/jabberclient.cpp 1a3b0e3e318c1801a24825a51f8d2bb8fa01313f
protocols/jabber/ui/dlgjabbereditaccountwidget.ui 3d73a5a52df3a79ee9d542b77587aea434f5bcc8
protocols/jabber/ui/dlgjabberxoauth2.h PRE-CREATION
protocols/jabber/ui/dlgjabberxoauth2.cpp PRE-CREATION
protocols/jabber/ui/dlgxoauth2.ui PRE-CREATION
protocols/jabber/ui/jabbereditaccountwidget.h 07f7e7056ca919cd51f9d8612d236740ff96efc8
protocols/jabber/ui/jabbereditaccountwidget.cpp 51b9e445dd3d8beaee936dc6ef7290e27593dc5b
protocols/jabber/xoauth2provider.h PRE-CREATION
protocols/jabber/xoauth2provider.cpp PRE-CREATION
Diff: https://git.reviewboard.kde.org/r/129239/diff/
Testing (updated)
-------
Tested with Google's XMPP server and authentication is working.
Google's configuration is quite complicated, so here are test steps:
1) Register project on https://console.developers.google.com/project and choose it
2) In "API Manager" choose "Credentials"
3) Setup "OAuth consent screen"
4) Go to "Create credentials" and select "OAuth client ID" and choose "Other" Application type
5) This will generate public "Client ID" and private "Client Secret Key" (keep it secret, no disclose!)
6) Clone project https://github.com/google/gmail-oauth2-tools which has "oauth2.py" script
7) Run: python python/oauth2.py --generate_oauth2_token --client_id="Client ID" --client_secret="Client Secret Key" --scope=https://www.googleapis.com/auth/googletalk
8) Open URL webpage generated by script, copy verification code from webpage and type it into oauth2.py script
9) After that oauth2.py script will provide private "Refresh Token" (keep it secret, no disclose!)
10) Go to Kopete Jabber Account Settings into Connection tab, check "Use X-OAuth2 authentication" and open "Manage X-OAuth2 tokens"
11) Type "Client ID", "Client Secret Key", "Refresh Token" and as "Request URL" use: "https://accounts.google.com/o/oauth2/token"
From "Client ID", "Client Secret Key", "Refresh Token" via "Request URL" is retrived "Access Token" which is then used for real authentication. You can use "Access Token" for autentication too (instead previous four settings), but Google generates "Access Token" with one hour validity.
Thanks,
Pali Rohár