summaryrefslogtreecommitdiff
path: root/libempathy
diff options
context:
space:
mode:
authorGiovanni Campagna <gcampagna@src.gnome.org>2012-10-28 13:25:07 +0100
committerDebarshi Ray <debarshir@gnome.org>2012-11-09 13:33:19 +0100
commit46aaeb66354585be83d35693750072b7c6fd5494 (patch)
tree0fdae51ca0451d2c1e6845c68bc7adf3df7fbe57 /libempathy
parent4b23c92bc0f7f30e5dc1f4b34ea1eeb759953f63 (diff)
Implement Google OAUTH2 authentication for GOA accounts
GOA recently switched to OAuth2 for Google accounts, so we can use its credentials to access Google Talk without a password. https://bugzilla.gnome.org/show_bug.cgi?id=652546
Diffstat (limited to 'libempathy')
-rw-r--r--libempathy/empathy-goa-auth-handler.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libempathy/empathy-goa-auth-handler.c b/libempathy/empathy-goa-auth-handler.c
index ddcde177..49fc9627 100644
--- a/libempathy/empathy-goa-auth-handler.c
+++ b/libempathy/empathy-goa-auth-handler.c
@@ -182,6 +182,12 @@ got_oauth2_access_token_cb (GObject *source,
auth_cb, data);
break;
+ case EMPATHY_SASL_MECHANISM_GOOGLE:
+ empathy_sasl_auth_google_async (data->channel,
+ goa_account_get_identity (goa_object_peek_account (data->goa_object)),
+ access_token, auth_cb, data);
+ break;
+
default:
g_assert_not_reached ();
}
@@ -351,5 +357,6 @@ empathy_goa_auth_handler_supports (EmpathyGoaAuthHandler *self,
mech = empathy_sasl_channel_select_mechanism (channel);
return mech == EMPATHY_SASL_MECHANISM_FACEBOOK ||
- mech == EMPATHY_SASL_MECHANISM_WLM;
+ mech == EMPATHY_SASL_MECHANISM_WLM ||
+ mech == EMPATHY_SASL_MECHANISM_GOOGLE;
}