Author: Jesse Gumm (@jessegumm)

# Identity Handler

Getting Started | API | Elements | Actions | Validators | Handlers | Configuration Options | About

## Table of Contents

- 1 Identity Handler

## 1 Identity Handler

The identity handler ties directly with the `wf:user` functions, the default approach is to simply store the user information into a specific session variable.

### Behavior Functions

##### `init(Config, State)`

Initialize the handler

- Return Value - `{ok, NewState}`

##### `finish(Config, State)`

Clean up the handler

- Return Value - `{ok, NewState}`

##### `get_user(Config, State)`

Retrieve the previously stored user information.

- Return Value - The previously stored user information.

##### `set_user(User, Config, State)`

Set the user information

- `User` - Free-form user information. Can be any erlang term: a username, user ID, tuple, proplist, Erlang record, etc..
- Return Value - {ok, NewState}

##### `clear(Config, State)`

Clear the user information.

- Return Value - {ok, NewState}

### Example

Here is the complete text of the default identity handler, which uses simply stores the data in sessions.

    -module (default_identity_handler).
    -behaviour (identity_handler).
    -export ([
        init/2,
        finish/2,
        get_user/2,
        set_user/3,
        clear/2
    ]).
    -define(KEY, {default_identity_handler, user}).

    init(_Config, State) ->
        {ok, State}.

    finish(_Config, State) ->
        {ok, State}.

    get_user(_Config, _State) ->
        wf:session(?KEY).

    set_user(User, _Config, State) ->
        wf:session(?KEY, User),
        {ok, State}.

    clear(_Config, State) ->
        wf:session(?KEY, undefined),
        {ok, State}.
    ~

### See Also

- Handler Overview
- API: Authentication and Authorization

Date: 2012-10-18 03:24:25 CDT

Author: Jesse Gumm (@jessegumm)

Org version 7.8.02 with Emacs version 23

Validate XHTML 1.0

## Comments

Note:To specify code blocks, just use the generic code block syntax:

    <pre><code>your code here</code></pre>

comments powered by Disqus