Implement Google OAUTH2 authentication for GOA accounts
authorGiovanni Campagna <gcampagna@src.gnome.org>
Sun, 28 Oct 2012 12:25:07 +0000 (13:25 +0100)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Fri, 2 Nov 2012 13:06:26 +0000 (14:06 +0100)
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

libempathy/empathy-goa-auth-handler.c

index ddcde17..49fc962 100644 (file)
@@ -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;
 }