Documentation

Insert JK-CAL - Alpha 1.6.0
Insert the following code to implement the JK-CAL Button. Your are allow to edit and to create the LoginButton by your own.

Communicate to JK-CAL with PHP post
service ($service) e.g. https://domain/to/your/path.php
The Service contains a url/path. JK-CAL need the service to redirect the user there after successfull login. Also JK-CAL check if
the service contains a domain and compare the domain with the sent servicekey.

servicekey e.g. $yourservicekey : hash_hmac('sha256',$yourservicekey,$yourservicekey)
The servicekey is a generated hash binded with your domain from JK-CAL. Your servicekey is the key to hash important data.
JK-CAL need your key to indentify your service so JK-CAL need your key hashed with SHA256 and as key your key itself.

serverkey e.g. $randomserverkey : rand(X,Y)
The serverkey is generated by your own. JK-CAL will hash the serverkey with your servicekey SHA256 and resend. The
serverkey is needed for your Service to indentify the response sender (JK-CAL). It is recommend to randomize your serverkey
(like the example). But you are allowed to use the servkey as what you want (but remind, that JK-CAL will hash it).

loginversion e.g. 1.6.0
You need to send your loginversion of your code. From time to time (only in Alpha) JK-CAL will release improvments which could change the login mechanism. To prevent conflicts, JK-CAL will warn
you if your version is not anymore recommend

JK-CAL communicate to you with PHP post:
$_POST['servicekey']
JK-CAL send the servicekey. Is the hashed serverkey with your servicekey (SHA256).

$_POST['username']
JK-CAL send the username (instead of useremail for more privacy). There you can indentify the user.

$_POST['userkey']
JK-CAL send the userkey to identify the Username.

$_POST['userid']
JK-CAL send the userid to identify the user. Only using Username for identify is a security risk.


The following is only a simple example:
This code can you implement (e.g. index.php) where you want to place the login (-button)


<?php
//You need to include the [JK-CAL].php
include('[JK-CAL].php');
//get the response from JK-CAL and perform the included login function or logout
if(isset($_POST['servicekey']) && isset($_POST['username']) && isset($_POST['userkey']) && isset($_POST['userid'])){
login($_POST['servicekey'],$_POST['username'],$yourservicekey,$_POST['userkey'],$_POST['userid'],$yoursessionname);
}
if(isset($_POST['status'])){
logout($_POST['status'], $yoursessionname);
}?>

<?php
//LoginButton
checkLogin($yoursessionname, $yourservicekey, $service);
?>



[JK-CAL].php – Download
This is the core of the example. Here your Server would communicate with the JK-CAL and display everything you need.

License (German)
Der JK-Central Application Login darf unter folgenden Vorraussetzungen kostenfrei in Webseiten, Apps sowie Computer Programmen eingebunden werden:

1. Loginbutton
1.1 Der Loginbutton darf frei nach der Dokumentation gestaltet werden.
1.2 Der Loginbutton muss eindeutig als Loginbutton identifizierbar und von Werbung differenzierbar sein.
1.3 Der Loginbutton muss direkt auf den Loginvorgang verweisen.

2. Loginvorgang
2.1 Der Loginvorgang darf nicht verzögert behindert oder programmtechnisch verändert werden.
2.2 Der Loginvorgang darf nur direkt und online erfolgen.

3. Nutzerdaten
3.1 Nutzerdaten (Passwort und Benutzername) dürfen nicht gespeichert oder abgefragt werden.
3.2 Nutzerdaten (außer Passwort und Benutzername) dürfen nur nach Bestätigung des Nutzers gespeichert werden.
3.3 Nutzerdaten müssen nach der europäischen DSGVO behandelt werden.
3.4 Nutzerdaten dürfen nicht veröffentlicht, an dritte oder für Werbezwecke verwendet werden.

4. System
4.1 Das System darf nicht auf Fehler untersucht werden.
4.2 Systemfehler müssen umgehend gemeldet werden.
4.3 Systemfehler dürfen nicht genutzt oder getestet werden.

5. JK
5.1 JK behält sich das Recht vor Server temporär oder permanent ohne Grundnennung auszuschließen.
5.2 JK behält sich das Recht vor das System temporär oder permanent zu herunterzufahren.
5.3 JK behält sich das Recht vor die Lizenz zu ändern