AutomationFlowsGeneral › n8n Auth Login with Webhook & Google Sheets

n8n Auth Login with Webhook & Google Sheets

Original n8n title: Barin Alp - Auth Login

BARIN ALP - Auth Login. Uses googleSheets. Webhook trigger; 6 nodes.

Webhook trigger★★★★☆ complexity6 nodesGoogle Sheets
General Trigger: Webhook Nodes: 6 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "BARIN ALP - Auth Login",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "auth/login",
        "options": {
          "allowedOrigins": "*"
        }
      },
      "id": "webhook-login",
      "name": "Webhook Login",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "1Mvg9vxzp7LyYwNor0i8o8LvqYiF0ID4WD3Af58zkVTo",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Users",
          "mode": "list"
        }
      },
      "id": "sheets-get-users",
      "name": "Get Users",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.4,
      "position": [
        470,
        300
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "condition-user-found",
              "leftValue": "={{ $json.username }}",
              "rightValue": "={{ $('Webhook Login').item.json.body.username }}",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "filter-user",
      "name": "Filter User",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2,
      "position": [
        690,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "condition-pin",
              "leftValue": "={{ $json.pin }}",
              "rightValue": "={{ $('Webhook Login').item.json.body.password }}",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "check-pin",
      "name": "Check PIN",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        910,
        300
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ {\n  \"success\": true,\n  \"token\": \"token-\" + $json.id + \"-\" + Date.now(),\n  \"user\": {\n    \"id\": $json.id,\n    \"username\": $json.username,\n    \"name\": $json.name,\n    \"role\": $json.role\n  }\n} }}",
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ]
          }
        }
      },
      "id": "respond-success",
      "name": "Success Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        1130,
        200
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { \"success\": false, \"message\": \"\u0413\u0440\u0435\u0448\u0435\u043d PIN \u043a\u043e\u0434\" } }}",
        "options": {
          "responseCode": 401,
          "responseHeaders": {
            "entries": [
              {
                "name": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ]
          }
        }
      },
      "id": "respond-error",
      "name": "Error Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        1130,
        400
      ]
    }
  ],
  "connections": {
    "Webhook Login": {
      "main": [
        [
          {
            "node": "Get Users",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Users": {
      "main": [
        [
          {
            "node": "Filter User",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter User": {
      "main": [
        [
          {
            "node": "Check PIN",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check PIN": {
      "main": [
        [
          {
            "node": "Success Response",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

BARIN ALP - Auth Login. Uses googleSheets. Webhook trigger; 6 nodes.

Source: https://github.com/Georgi-Piskov/barin-alp-pwa/blob/e075dc84be1bb3ab00948c90ae754447771adaa5/n8n-workflows/01-auth-login.json — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Rodopi Dent - Finance UPDATE. Uses googleSheets. Webhook trigger; 10 nodes.

Google Sheets
General

Rodopi Dent - Finance GET. Uses googleSheets. Webhook trigger; 6 nodes.

Google Sheets
General

BARIN ALP - Objects CRUD. Uses googleSheets, respondToWebhook. Webhook trigger; 9 nodes.

Google Sheets
General

Sia — Portal de Expansão de Terrenos (Principal). Uses chainLlm, lmChatGroq, googleSheets. Webhook trigger; 12 nodes.

Chain Llm, Groq Chat, Google Sheets
General

AI Product Description Writer. Uses openAi, googleSheets. Webhook trigger; 6 nodes.

OpenAI, Google Sheets