Login Handlers
Handler is the most important element in integration process. As per diagram
represented in "How site authorization works" section handler generates xml
formatted response with all information on the user requesting application. The
archive you downloaded from support area contains sample handler file which can
be found in "Handlers" folder. The HTTP path to the handler we have
specified in the previous step via admin console. Now let's go back to admin
console and "Integration section":
Here we have 3 available modes to authorize a user:
| Auto Login |
If enabled, the chat calls authorization handler and if user
is logged in on the main site he/she enters the chat automatically. |
| Chat Login |
Enables/Disables chat authorization. I.e. a user will be
offered to enter his username and password on the chat login screen. |
| Guest Mode |
Indicates if non registered users (guests) can enter the chat. |
For each of the modes chat server calls its own handler
| Auto Login |
yourdomain/chat71/handlers/auto.login.handler.php?uid=2012 |
| Chat Auth |
yourdomain/chat71/handlers/chat.login.handler.php?login=David&password=123 |
| Guest Mode |
yourdomain/chat71/handlers/guest.login.handler.php?userName=David |
Auto Login and Chat Auth modes have identical xml response. It doesn't matter what scripting language or methods to generate
xml you use the only requirement is the correct xml structure as the one
demonstrated below:
|
<login result="OK">
<userData>
<id>2012</id>
<name><![CDATA[David]]></name>
<gender>0</gender>
<location>London, UK</location>
<age>22</age>
<photo><![CDATA[http://yourdomain/photos/2012_big.png]]></photo>
<thumbnail><![CDATA[http://yourdomain/photos/2012_small.png]]></thumbnail>
<details><![CDATA[Hello, I am David]]></details>
<level>regular</level>
<profileUrl>http://yourdomain/profile/David</profileUrl>
</userData>
<friends> </friends>
<blocks> </blocks>
</login>
|
The XML result consists of 4 sections auth,user, friends and blocks.
<Auth> Section
| <login result="OK"> |
Returned if authentication passed successfully prior to user
info xml. |
| <login result="FAIL"
error="error_authentication_failed"/>
|
Returned if authentication failed and corresponding message is
shown to end user. |
<userData> Section
This section is required and always should contain data. If requested user has
no photo you just should return default no photo image. Please refer to the
table below for nodes description:
| id |
Global user identifier used for the communication between chat
system and website. |
| name |
Name of the user displayed at front-end. |
| gender |
Gender of the user displayed at front-end. |
| location |
Location of the user displayed at front-end. |
| age |
Age of the user displayed at front-end. |
| photo |
Url to the user's main photo file. The recommended image size
is 200x150 pixels |
| thumbnail |
User's thumbnail image URL which is shown on tabs to the left.
The recommended image size is 38x38 pixels |
| details |
Brief user's introduction. |
| level |
Applicable with Limitations plugin installed only, otherwise
return "regular". |
| profileUrl |
It opens new browser window when a user clicks "Full profile"
link in user's profile. |

It's required to return a value for Photo and Thumbnail parameters. If a user
doesn't have profile image you should return default "no photo" image.
|

Flash player has strict security policy allowing to load resources from the domain it is being
initially called from only. If you load profile images from the 3 rd party domain place crossdomain.xml file into the root allowing for flash player connections.
|
<Friends> Section
This section contains id, name and thumbnail of the current user's friends with corresponding profile
information. See Friends/block list integration section of the manual for more
details.
<Block> Section
This node lists id, name and thumbnail of the users who are blocked by the current user. See
Friends/block list integration section of the manual for more details.
In current "Basic integration" section we are setting up very static
authentication model without database connections and sophisticated security
mechanism which are covered in-depth in "Advanced integration" section.
Recall "Adding chat to your website" paragraph where we have passed random
UID as '2012' parameter for popup and embedded modes:
The value of this parameter has passed through chat server and
arrived via GET method to handler.
Before moving forward to final step we need to make sure
our handler returns correct xml response. The most common way to verify output
xml is to call handler directly in browser, like this:
|
http://yourdomain/chat71/handlers/auto.login.handler.php?uid=2012 |
If you look at source of the page you should see the following:

By taking this step we ensure that authentication has passed successfully and
chat server receives correct response.
|