RADIUSdesk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
user_guide:user_registration_api [2021/02/08 05:11] – created adminuser_guide:user_registration_api [2021/02/08 10:14] (current) – [Finding the login_page_id] admin
Line 2: Line 2:
 ===== Introduction ===== ===== Introduction =====
   * This document is applicable to the Git version of RADIUSdesk (2021Version)   * This document is applicable to the Git version of RADIUSdesk (2021Version)
 +  * We will explain the same API used by a login page that has **User Registration** enabled.
 +  * To enable user registration on a login page, go to the Dynamic Login Pages applet.
 +  * Select a login page and click **Edit**
 +  * At the bottom of the **Settings** sub-tab is a **Registration** tab.
 +  * There you can enable and fine tune it for the specified login page.
 +
 +===== API =====
 +==== API URL ====
 +  * We assume the FQDN of the RADIUSdesk server is **hotspot.radiusdesk.com**. Please adapt accordingly.
 +  * http://hotspot.radiusdesk.com/cake3/rd_cake/register-users/new-permanent-user.json
 +
 +==== Items included in the POST ====
 +
 +  * Let us take a look at the items submitted to the back-end when a user registers and then discuss important items in that list.
 +
 +<code javascript>
 +{
 + "mac": "28-D2-44-20-AA-00",
 + "login_page": "demo1",
 + "login_page_id": "1",
 + "name": "Dirk",
 + "surname": "van der Walt",
 + "username": "dirkvanderwalt@radiusdesk.com",
 + "password": "very$ecu3",
 + "phone": "0721235555"
 +}
 +</code>
 +
 +^ Item      ^ Typical Value       ^ Comment          ^
 +| mac    | 28-D2-44-20-AA-00     | Mandatory if the **One user registration per device** is selected     |
 +| login_page    | demo1     | Optional - Not required but may be useful to know which login page you work with  |
 +| login_page_id  | 1     | The ID is kept in a hidden column under the Dynamic Details Grid  |
 +| name    | Dirk       |
 +| surname    | van der Walt       |
 +| username    |  dirkvanderwalt@radiusdesk.com     | We use the email address as the username  |
 +| password    | very$ecu3      |
 +| phone    | 0721235555      |
 +
 +==== Finding the login_page_id ====
 +  * See the following screenshot to get to the login_page_id
 +
 +{{ :user_guide:login:login_page_id.png?nolink&400 |}}
 +
 +
 +  * The first hidden column contains the value of login_page_id.
 +
 +
 +
 +
 +
 +
 +==== A Word On The MAC Address ====
 +
 +  * The MAC Address is the MAC address from the WiFi interface of the device that the user will connect with to the Captive Portal.
 +  * When we use the login page to do the user registration we can extract it from the detail provided to us by CoovaChilli typically.
 +  * When we create something like a mobile app and want to allow someone to register **without being connected to the Captive Portal**, we can still supply the MAC address of the device using the app.
 +  * Here is some info on how to get it programmatically: https://stackoverflow.com/questions/10831578/how-to-find-mac-address-of-an-android-device-programmatically/13007454
 +
 +==== Reply - Success ====
 +
 +  * This is typically what a successful reply will look like
 +<code javascript>
 +{
 +    "success": true,
 +    "data": {
 +        "active": "active",
 +        "cap_data": "hard",
 +        "language": "4_4",
 +        "user_id": 0,
 +        "profile_id": 3,
 +        "realm_id": 1,
 +        "token": "85eeb70f-2af0-4d45-9fde-1b9a787048ca",
 +        "username": "dirkvanderwalt@radiusdesk.com",
 +        "password": "very$ecur3",
 +        "email": "dirkvanderwalt@radiusdesk.com",
 +        "extra_name": "mac",
 +        "extra_value": "28-D2-44-20-04-8D",
 +        "auto_add": 1,
 +        "name": "Dirk",
 +        "surname": "van der Walt",
 +        "phone": "0721235555"
 +    }
 +}
 +</code>
 +
 +==== Reply - Failure ====
 +  * This is a typical message if someone tries to register twice from the same device
 +<code javascript>
 +{
 +    "success": false,
 +    "errors": {
 +        "username": "MAC Address 28-D2-44-20-04-8D in use by dirkvanderwalt@gmail.com@demo1"
 +    }
 +}
 +</code>
 +