Download the PHP package asaritech/ukey1-php-sdk without Composer
On this page you can find all versions of the php package asaritech/ukey1-php-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download asaritech/ukey1-php-sdk
More information about asaritech/ukey1-php-sdk
Files in asaritech/ukey1-php-sdk
Package ukey1-php-sdk
Short Description Ukey1 SDK for PHP
License MIT
Homepage https://github.com/asaritech/ukey1-php-sdk
Informations about the package ukey1-php-sdk
Ukey1 SDK for PHP
This repository contains the open source PHP SDK that allows you to access the Ukey1 API from your PHP app.
!!! Please note that versions older than 3.0.0 are deprecated and don't work since November 15, 2017 !!!
About Ukey1
Ukey1 is an Authentication and Data Protection Service with the mission to enhance security of websites. The service is designed to help you with EU GDPR compliance.
Ukey1 flow for this PHP SDK
- User clicks to "sign-in" button
- you may use our unified sign-in button
- SDK sends a connection request to our API and gets a unique Gateway URL
- User is redirected to Ukey1 Gateway
- User signs in using their favourite solution and authorizes your app
- User is redirected back to predefined URL
- SDK checks the result and gets a unique access token
- That's it - user is authenticated (your app can make API calls to get user's data)
API specification
Requirements
- PHP ^5.5|^7.0
- guzzlehttp/guzzle ~6.0
- lcobucci/jwt ^3.2
Installation
The Ukey1 PHP SDK can be installed with Composer (recommended option). Run this command:
Usage
First, you need credentials (App ID
and Secret Key
). In our dashboard, we also recommend to activate as many protections as possible.
Sign-in / sign-up / log-in - all buttons in one
Your app may look like this (of course, it's optional):
Connection request
Your script login.php
makes a request to our endpoint /auth/v2/connect
.
Requests for access token and user details
Once the user authorizes your app, Ukey1 redirects the user back to your app to the URL you specified earlier. The same is done if user cancels the request.
URL will look like this: http://example.org/login.php?action=check&user=XXX&_ukey1[request_id]={REQUEST_ID}&_ukey1[connect_id]={CONNECT_ID}&_ukey1[code]={CODE}&_ukey1[result]={RESULT}&_ukey1[signature]={SIGNATURE}#fragment
where REQUEST_ID
is a previously used $requestId
, CONNECT_ID
is a previously used $connectId
, CODE
is a one-time code for getting the access token
RESULT
may be authorized or canceled and SIGNATURE
is a security signature.
Premium features
Private users
This feature also known as Extranet users (must be enabled in Ukey1 dashboard) is useful when you want to implement Ukey1 into your private app where only predefined users can access (typically employees within company extranet).
The flow is similar. First, in your private app you need to have a simple user management. No password needed, only roles (if applicable), our User ID (that you will get at the end of the flow as usually) and Extranet Reference ID. This Reference ID serves for user deletion in the further future.
In your own user management, when you create a new user, you also have to make a POST request to our endpoint /auth/v2/extranet/users
.
For install purposes (it means when no user is in your user management database), the owner of the app in Ukey1 dashboard is automatically authorized to log in to your app. Just log in like in case of a public app.
Please note that each environment is separate for this feature, so when you add new user on test environment, you have to add them again for production environment (and vice versa) if you need so.
Example
Would you like a working example? You can download and try ukey1-php-sdk-example.
License
This code is released under the MIT license. Please see LICENSE file for details.
Contributing
If you want to become a contributor of this PHP SDK, please first contact us (see our email below). Please note we follow [PSR-2]. If you would like to work on another SDK (in your favorite language), we will glad to know about you too!
Contact
Reporting of any issues are appreciated. If you want to contribute or you have found a critical bug, please write us directly to [email protected].