GDataGoaAuthorizer

GDataGoaAuthorizer — GData GOA authorization interface

Stability Level

Unstable, unless otherwise indicated

Synopsis

#include <gdata/gdata-goa-authorizer.h>

                    GDataGoaAuthorizer;
                    GDataGoaAuthorizerClass;
GDataGoaAuthorizer * gdata_goa_authorizer_new           (GoaObject *goa_object);
GoaObject *         gdata_goa_authorizer_get_goa_object (GDataGoaAuthorizer *self);

Object Hierarchy

  GObject
   +----GDataGoaAuthorizer

Implemented Interfaces

GDataGoaAuthorizer implements GDataAuthorizer.

Properties

  "goa-object"               GoaObject*            : Read / Write / Construct Only

Description

GDataGoaAuthorizer provides an implementation of the GDataAuthorizer interface for authentication and authorization using GNOME Online Accounts (GOA) over D-Bus. This allows a single login session (managed by the GOA daemon) to be used by multiple applications simultaneously, without each of those applications having to go through the authentication process themselves. Applications making use of GDataGoaAuthorizer don't get access to the user's password (it's handled solely by the GOA daemon).

Internally, GOA authenticates with the Google servers using the OAuth 1.0 process.

GDataGoaAuthorizer natively supports authorization against multiple services (unlike GDataClientLoginAuthorizer), depending entirely on which services the user has enabled for their Google account in GOA. GDataGoaAuthorizer cannot authenticate for more services than are enabled in GOA.

Example 5. Authenticating Using GOA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
GDataSomeService *service;
GoaObject *goa_object;
GDataGoaAuthorizer *authorizer;

/* Create an authorizer and pass it an existing <GTKDOCLINK HREF="GoaObject">GoaObject</GTKDOCLINK>. */
goa_object = get_goa_object ();
authorizer = gdata_goa_authorizer_new (goa_object);

/* Create a service object and link it with the authorizer */
service = gdata_some_service_new (GDATA_AUTHORIZER (authorizer));

/* Use the service! */

g_object_unref (service);
g_object_unref (authorizer);
g_object_unref (goa_object);


Details

GDataGoaAuthorizer

typedef struct _GDataGoaAuthorizer GDataGoaAuthorizer;

All the fields in the GDataGoaAuthorizer structure are private and should never be accessed directly.

Since 0.13.1


GDataGoaAuthorizerClass

typedef struct {
} GDataGoaAuthorizerClass;

All the fields in the GDataGoaAuthorizerClass structure are private and should never be accessed directly.

Since 0.13.1


gdata_goa_authorizer_new ()

GDataGoaAuthorizer * gdata_goa_authorizer_new           (GoaObject *goa_object);

Create a new GDataGoaAuthorizer using the authentication token from the given goa_object.

goa_object :

the GOA account providing authentication. [transfer none]

Returns :

a new GDataGoaAuthorizer; unref with g_object_unref(). [transfer full]

Since 0.13.1


gdata_goa_authorizer_get_goa_object ()

GoaObject *         gdata_goa_authorizer_get_goa_object (GDataGoaAuthorizer *self);

The GOA account providing authentication. This is the same as "goa-object".

self :

a GDataGoaAuthorizer

Returns :

the GOA account providing authentication. [transfer none]

Since 0.13.1

Property Details

The "goa-object" property

  "goa-object"               GoaObject*            : Read / Write / Construct Only

The GOA account providing authentication. This should have all the necessary services enabled on it.

Since 0.13.1