Custom Software Services for Forward-Thinking Organizations
CASE STUDIES BLOG
  CONTACT US LET'S TALK
ABOUT US WHY SOLUNTECH CAREERS PRICING FAQs OUR PROCESS
AI ENABLEMENT NEW PRODUCT DEFINITION MVP DEVELOPMENT CUSTOM DEVELOPMENT WEB & MOBILE DEVELOPMENT WORKFLOW AUTOMATION UX/UI DESIGN STAFF AUGMENTATION
INDUSTRIES SPORTS FINANCIAL SERVICES HEALTHCARE TECHNOLOGY SECURITY ADMINISTRATIVE THIRD-PARTY LOGISTICS E-LEARNING & TRAINING
ROI Calculator
COMPANY ABOUT US WHY SOLUNTECH CAREERS PRICING FAQs OUR PROCESS SERVICES AI ENABLEMENT NEW PRODUCT DEFINITION MVP DEVELOPMENT CUSTOM DEVELOPMENT WEB & MOBILE DEVELOPMENT WORKFLOW AUTOMATION UX/UI DESIGN STAFF AUGMENTATION INDUSTRIES INDUSTRIES SPORTS FINANCIAL SERVICES HEALTHCARE TECHNOLOGY SECURITY ADMINISTRATIVE THIRD-PARTY LOGISTICS E-LEARNING & TRAINING TOOLS ROI Calculator CASE STUDIESBLOG
Custom Software Services for Forward-Thinking Organizations
Custom Software Services for Forward-Thinking Organizations
 CONTACT USLET'S TALK

Last Login and Logout (Object Based)

 

Want to know the last time a user logged in to your Knack app?

This feature is usually implemented to keep track of the users who use the application, especially the period of time in which a session lasts.

Knack applications allow you to implement authentication forms simply and quickly, however when establishing a control or audit on the logins or log outs that are constantly running within the application, you must resort to the help of JavaScript for that end. Below we list a series of steps that will serve as a guide for the implementation of these logs:

1. Create a new object in the database: Although the object can have any number of fields, it is recommended that it have at least three fields: Email, Date / Time and Action (Multiple Choice = Login or Logout).

LOG IN LOG OUT LB.png

2. Add the following lines of code within the API & Code section:

var LOGIN_PAGE = false;
var LOGIN = false;
// Set Knack Info for your app
var KNACK_HEADERS = {
    'X-Knack-Application-ID': 'XXXXXXXXXXXXXXXXXXXX',
    'X-Knack-REST-API-Key': 'YYYYYYYYYYYYYYYYYYYYY'
};
// Change object_XX for Login Log object ID
var objectId = 'object_XX';
// Login actions
$(document).on('knack-scene-render.any', function (event, scene) {
    LOGIN_PAGE = ($('.kn-login').length == 1) ? true : false;
    if (LOGIN_PAGE) {
        LOGIN = false;
        $('input[type="submit"]').click(function (e) {

            e.preventDefault();

            LOGIN = true;

            $('form').submit();
        });
    } else {
        if (LOGIN) {
            LOGIN = false;
            var user = Knack.session.user;
            // Create record log
            $.ajax({
                type: 'POST',
                headers: KNACK_HEADERS,
                url: Knack.api_url + '/v1/objects/' + objectId + '/records',
                data: {
                    field_XXX: user.email,  // Change field_XXX for Email field ID
                    field_YYY: 'Login'      // Change field_YYY for Action field ID 
                }
            });
        }
    }
});
// Logout actions
$(document).on('knack-scene-render.any', function (event, scene) {
    // Check is already authenticated
    if (!Knack.session.user) {
        return;
    }
    $('.kn-log-out').on('click', function () {
        var user = Knack.session.user;

        // Create record log
        $.ajax({
            type: 'POST',
            headers: KNACK_HEADERS,
            url:  Knack.api_url + '/v1/objects/' + objectId + '/records',
            data: {
                field_XXX: user.email,  // Change field_XXX for Email field ID
                field_YYY: 'Logout'     // Change field_YYY for Action field ID 
            }
        });
    });
});
LOG IN LOG OUT LB 2.png

And on this object you can use different native Knack components such as tables, reports or graphs.

We’re sure this will come in handy on all your projects. 

Did you like it?

Please let us know!

 
Low-CodeGuest UserMay 7, 2020Knack, login, logout, low code, custom-built, softwareComment
Facebook0 Twitter LinkedIn0 Reddit Tumblr Pinterest0 0 Likes
Previous

How to Implement the Google Translate Widget in Knack

Low-CodeGuest UserMay 8, 2020Knack, widget, google
Next

Meet Fernando Llinás, Account Manager

Guest UserMay 4, 2020software, Soluntech Team
 

COMPANY

See Our Experience
Your Ultimate Software Partner
Learn About Our Process
Read our Blog
Careers At Soluntech

SERVICES

  • AI-Enablement
    Staff Augmentation
    Custom Development
    Workflow Automation
    UI & UX Remake
    App Auditing
    Feasibility Assessment

  • New Product Definition
    Business Model Definition
    MVP Development
    Low-Code Development
    UI & UX Design

PRACTICES

  • Custom Development
    Low-Code Development
    MVP Development
    Web & Mobile Development

  • App Consulting
    Data Strategy Consulting
    SMEs Consulting
    Startup Business Consulting

  • UX Plan
    UI Design
    UX/UI Design
    UX/UI Remake

  • AI-Enablement
    Staff Augmentation
    Business Model Definition
    New Product Definition
    Feasibility Assessment
    Workflow Automation

  • AI & Machine Learning
    ReactJS Consulting
    Training

  • Product Audit
    App Auditing,
    Quality Assurance & Testing

PARTNERS

PLATFORMS

Bubble
Knack
Caspio

CONTACT US

7630 NW 25 Street #2B
Miami, FL, 33122
USA

US: +1 (954) 769 0091
UK: +44 (203) 287-2043

HELLO@SOLUNTECH.COM

RECEIVE NEWS & UPDATES

 

A TOP-NOTCH SOFTWARE PARTNER

 
+1 (954) 769 0091 info@soluntech.com
Hours
Mon 8am - 6pm
Tue 8am - 6pm
Wed 8am - 6pm
Thu 8am - 6pm
Fri 8am - 6pm
PROCESS
Process
FAQsTERMS OF USEPRIVACY POLICYSitemap