From 0aef40ccb03f3ce05b0a364b8acd6aa66a065dc1 Mon Sep 17 00:00:00 2001 From: Jos Groot Lipman Date: Wed, 29 Mar 2017 14:28:44 +0000 Subject: [PATCH] FSN#39750 Authenticatie 'Apps', savepoint svn path=/Website/trunk/; revision=33316 --- APPL/API2/model_aut_client_perslid.inc | 2 +- APPL/AUT/getapptoken.asp | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/APPL/API2/model_aut_client_perslid.inc b/APPL/API2/model_aut_client_perslid.inc index 9435f10fe2..c9b21829bf 100644 --- a/APPL/API2/model_aut_client_perslid.inc +++ b/APPL/API2/model_aut_client_perslid.inc @@ -33,7 +33,7 @@ function model_aut_client_perslid(params) "hidden_fld": true, "required": true }, - "device": { + "device_id": { "dbs": "aut_client_perslid_device_id", "label": L("aut_client_perslid_device"), "typ": "varchar" diff --git a/APPL/AUT/getapptoken.asp b/APPL/AUT/getapptoken.asp index ff53aa4906..eef45019aa 100644 --- a/APPL/AUT/getapptoken.asp +++ b/APPL/AUT/getapptoken.asp @@ -19,7 +19,8 @@ var JSON_Result = true; <% var client_id = getQParam("client_id"); - var device_id = getQParam("device_id", ""); // optional device identification + var device_id = getQParam("device_id", "AUTO_" + shared.random(32)); // optional device identification + // Hetzelfde device krijgt altijd hetzelfde token terug var model_client = new model_aut_client({ internal: true }); var client_data = api2.GET(model_client, { filter: { "code": client_id } }); // sp moet er dan zijn voor Service Provider if (!client_data && client_id == "FCLTAPP1") // Voor FCLTAPP1 ondersteunen we auto-create @@ -45,9 +46,9 @@ var JSON_Result = true; INTERNAL_ERROR_MISSING_SP; var model_client_perslid = new model_aut_client_perslid({ internal: true }); - //altijd nieuwe cp_data maken. Het kan zijn dat je een ander device aan het registreren bent - //var cp_data = api2.GET(model_client_perslid, { filter: { "autclient": client_data.id, "person": user_key, "device_id": device_id } }); - //if (!cp_data) + // Soms nieuwe cp_data maken. Het kan zijn dat je een ander device aan het registreren bent + var cp_data = api2.GET(model_client_perslid, { filter: { "autclient": client_data.id, "person": user_key, "device_id": device_id } }); + if (!cp_data) { var cp_data = { "autclient" : client_data.id, "scope" : "*", @@ -62,11 +63,21 @@ var JSON_Result = true; var result = model_client_perslid.REST_POST({}, cp_data); cp_data = api2.GET(model_client_perslid, result.key ); } + else // bestaande cp_data. Maak nieuw access token (vorige laten vervallen?) + { + var new_cp_data = { + "accesstoken" : '1$' + customerId + "_" + shared.random(32), // Does not expire yet? + "accessdate" : new Date() + } + var result = model_client_perslid.REST_PUT({}, new_cp_data, cp_data.id); + cp_data = api2.GET(model_client_perslid, cp_data.id ); + } var result = { "fcltversion": FCLTVersion, "instance_url": HTTP.urlzelf() + "/", "push_token": cp_data.pushtoken, + "device_id": cp_data.device_id, "access_token": cp_data.accesstoken, // JWT met SP 'FCLTAPP1'? Of JWT met IDP 'FACILITOR'? // Wel bij elke klant aan te maken dan? Of automatisch? // bearer is stateless/ single request dus geen redirect