## SignonAuthSession SignonAuthSession — Authentication session handler. |

## Functions

SignonAuthSession * | signon_auth_session_new ()
void | signon_auth_session_cancel ()
const gchar * | signon_auth_session_get_method ()
void | signon_auth_session_process ()
GVariant * | signon_auth_session_process_finish ()

## Signals

void | state-changed | Action

## Types and Values

#define | SIGNON_SESSION_DATA_CAPTION
#define | SIGNON_SESSION_DATA_PROXY
#define | SIGNON_SESSION_DATA_REALM
#define | SIGNON_SESSION_DATA_RENEW_TOKEN
#define | SIGNON_SESSION_DATA_SECRET
#define | SIGNON_SESSION_DATA_TIMEOUT
#define | SIGNON_SESSION_DATA_UI_POLICY
#define | SIGNON_SESSION_DATA_USERNAME
#define | SIGNON_SESSION_DATA_WINDOW_ID
struct | SignonAuthSession
enum | SignonSessionDataUiPolicy

## Object Hierarchy

        GEnum
        ╰── SignonSessionDataUiPolicy
        GObject
        ╰── SignonAuthSession

## Implemented Interfaces

SignonAuthSession implements SignonProxy.

## Description

The SignonAuthSession object is responsible for handling the client authentication. SignonAuthSession objects can be created from existing identities (via `signon_identity_create_session()` or by passing a non-zero ID to `signon_auth_session_new()`), in which case the authentication data such as username and password will be implicitly taken from the identity, or they can be created with no existing identity bound to them, in which case all the authentication data must be filled in by the client when `signon_auth_session_process()` is called.

## Functions

### signon_auth_session_new ()

    SignonAuthSession *
    signon_auth_session_new (gint id,
                             const gchar *method_name,
                             GError **err);

Creates a new SignonAuthSession, which can be used to authenticate using the specified method.

#### Parameters

id | the id of the SignonIdentity to be used. Can be 0, if this session is not bound to any stored identity. |
method_name | the name of the authentication method to be used. |
err | a pointer to a location which will contain the error, in case this function fails. |

#### Returns

a new SignonAuthSession.

### signon_auth_session_cancel ()

    void
    signon_auth_session_cancel (SignonAuthSession *self);

Cancel the authentication session.

#### Parameters

self | the SignonAuthSession. |

### signon_auth_session_get_method ()

    const gchar *
    signon_auth_session_get_method (SignonAuthSession *self);

Get the current authentication method.

#### Parameters

self | the SignonAuthSession. |

#### Returns

the authentication method being used, or `NULL` on failure.

### signon_auth_session_process ()

    void
    signon_auth_session_process (SignonAuthSession *self,
                                 GVariant *session_data,
                                 const gchar *mechanism,
                                 GCancellable *cancellable,
                                 GAsyncReadyCallback callback,
                                 gpointer user_data);

Performs one step of the authentication process. If the SignonAuthSession object is bound to an existing identity, the identity properties such as username and password will be also passed to the authentication plugin, so there's no need to fill them into `session_data` . `session_data` can be used to add additional authentication parameters to the session, or to override the parameters otherwise taken from the identity.

#### Parameters

self | the SignonAuthSession. |
session_data | a dictionary of parameters. | [transfer floating]
mechanism | the authentication mechanism to be used. |
cancellable | optional GCancellable object, `NULL` to ignore. | [allow-none]
callback | a callback which will be called when the authentication reply is available. |
user_data | user data to be passed to the callback. |

Since: 1.8

### signon_auth_session_process_finish ()

    GVariant *
    signon_auth_session_process_finish (SignonAuthSession *self,
                                        GAsyncResult *res,
                                        GError **error);

Collect the result of the `signon_auth_session_process()` operation.

#### Parameters

self | the SignonAuthSession. |
res | A GAsyncResult obtained from the GAsyncReadyCallback passed to `signon_auth_session_process()`. |
error | return location for error, or `NULL`. |

#### Returns

a GVariant of type `G_VARIANT_TYPE_VARDICT` containing the authentication reply.

Since: 1.8

## Types and Values

### SIGNON_SESSION_DATA_CAPTION

    #define SIGNON_SESSION_DATA_CAPTION       "Caption"

Caption for the UI dialog.

### SIGNON_SESSION_DATA_PROXY

    #define SIGNON_SESSION_DATA_PROXY         "NetworkProxy"

Proxy.

### SIGNON_SESSION_DATA_REALM

    #define SIGNON_SESSION_DATA_REALM         "Realm"

Realm.

### SIGNON_SESSION_DATA_RENEW_TOKEN

    #define SIGNON_SESSION_DATA_RENEW_TOKEN   "RenewToken"

Requests the signon plugin to obtain a new token (boolean).

### SIGNON_SESSION_DATA_SECRET

    #define SIGNON_SESSION_DATA_SECRET        "Secret"

Secret.

### SIGNON_SESSION_DATA_TIMEOUT

    #define SIGNON_SESSION_DATA_TIMEOUT       "NetworkTimeout"

Network timeout, in milliseconds (uint32).

### SIGNON_SESSION_DATA_UI_POLICY

    #define SIGNON_SESSION_DATA_UI_POLICY     "UiPolicy"

Policy for the signon process.

#### Parameters

see_also | SignonSessionDataUiPolicy |

### SIGNON_SESSION_DATA_USERNAME

    #define SIGNON_SESSION_DATA_USERNAME      "UserName"

Username.

### SIGNON_SESSION_DATA_WINDOW_ID

    #define SIGNON_SESSION_DATA_WINDOW_ID     "WindowId"

Platform-specific window id (for dialog transiency) - uint32.

### struct SignonAuthSession

    struct SignonAuthSession;

Opaque struct. Use the accessor functions below.

### enum SignonSessionDataUiPolicy

Policy for the signon process, passed to the UI plugin.

#### Members

SIGNON_POLICY_DEFAULT | The plugin can decide when to show UI. |
SIGNON_POLICY_REQUEST_PASSWORD | Force the user to enter the password. |
SIGNON_POLICY_NO_USER_INTERACTION | No UI elements will be shown to the user. |
SIGNON_POLICY_VALIDATION | UI elements can be shown to the user only when CAPTCHA-like security measures are required. |

## Signal Details

### The `“state-changed”` signal

    void
    user_function (SignonAuthSession *auth_session,
                   int                state,
                   char              *message,
                   gpointer           user_data)

Emitted when the state of the SignonAuthSession changes.

#### Parameters

auth_session | the SignonAuthSession |
state | the current state of the SignonAuthSession |
message | the message associated with the state change |
user_data | user data set when the signal handler was connected. |

Flags: Action