Implementing ItsMe in a FWH-application

Implementing ItsMe in a FWH-application

Postby driessen » Wed Aug 07, 2024 9:04 am

Hello,

In a lot of European countries, the app ItsMe for Android or IOS is used to sign documents, to use banking apps, etc. It works like a kind of authenticator.

Is there a way ItsMe can be implemented in a FWH-application?

Thank you very much.
Regards,

Michel D.
Genk (Belgium)
_____________________________________________________________________________________________
I use : FiveWin for (x)Harbour v. 24.07 - Harbour 3.2.0 (February 2024) - xHarbour Builder (January 2020) - Bcc773
User avatar
driessen
 
Posts: 1422
Joined: Mon Oct 10, 2005 11:26 am
Location: Genk, Belgium

Re: Implementing ItsMe in a FWH-application

Postby Antonio Linares » Wed Aug 07, 2024 8:30 pm

Dear Michel,

Implementing ItsMe in a FWH (FiveWin for Harbour) application involves several steps, given that ItsMe is a mobile-based authentication and digital identity service. Here's a general outline of how you might approach this integration:

Understand ItsMe API:

First, you need to understand how the ItsMe API works. ItsMe provides APIs for authentication, digital signatures, and user data retrieval. You'll need to access ItsMe's developer documentation to understand the endpoints, request and response formats, and the authentication methods used.
Register Your Application:

You must register your application with ItsMe to get the necessary API keys and credentials. This usually involves creating a developer account and configuring your application in the ItsMe developer portal.
Setup Webhook Endpoint:

ItsMe often uses webhooks to communicate the result of user actions (like successful authentication). You'll need to set up a webhook endpoint that can handle these callbacks from ItsMe.
Create FWH Application Integration:

FiveWin for Harbour (FWH) is primarily used for developing desktop applications. To integrate with ItsMe, your FWH application will need to be able to make HTTP requests and handle JSON data. Harbour has libraries for handling HTTP requests and JSON.
Here is a simplified example of how you might start implementing this in FWH:

Step 1: Making an HTTP Request to ItsMe
You'll need a function in your FWH application to initiate an authentication request with ItsMe.

Code: Select all  Expand view
#include "FiveWin.ch"
#include "hbHttp.h"

FUNCTION InitiateItsMeAuthentication()
    LOCAL cApiUrl := "https://api.itsme-id.com/oauth2/v2/auth"
    LOCAL cClientId := "YOUR_CLIENT_ID"
    LOCAL cRedirectUri := "YOUR_REDIRECT_URI"
    LOCAL cState := "RANDOM_STATE_STRING"
    LOCAL cScope := "profile openid"

    LOCAL cAuthUrl := cApiUrl + ;
        "?client_id=" + cClientId + ;
        "&redirect_uri=" + cRedirectUri + ;
        "&response_type=code" + ;
        "&state=" + cState + ;
        "&scope=" + cScope

    ? "Open this URL in the user's browser: " + cAuthUrl
    RETURN NIL
 

Step 2: Handling the Redirect
When ItsMe redirects the user back to your application, it will include an authorization code. You need to capture this and exchange it for an access token.

Code: Select all  Expand view
FUNCTION HandleItsMeRedirect(cCode, cState)
    LOCAL cTokenUrl := "https://api.itsme-id.com/oauth2/v2/token"
    LOCAL cClientId := "YOUR_CLIENT_ID"
    LOCAL cClientSecret := "YOUR_CLIENT_SECRET"
    LOCAL cRedirectUri := "YOUR_REDIRECT_URI"

    LOCAL hConnection := TipClientHttp():New(cTokenUrl)
    LOCAL cPostData := "grant_type=authorization_code" + ;
        "&code=" + cCode + ;
        "&redirect_uri=" + cRedirectUri + ;
        "&client_id=" + cClientId + ;
        "&client_secret=" + cClientSecret

    hConnection:Post(cPostData)
    LOCAL cResponse := hConnection:ReadAll()
    ? "Token Response: " + cResponse

    // Parse the response to extract the access token and other details
    // Store the token for future requests

    RETURN NIL
 

Step 3: Using the Access Token
With the access token, you can now make authenticated requests to ItsMe's API to retrieve user information or perform other actions.

Step 4: Setting up a Webhook
You'll need to set up a web server that can handle incoming requests from ItsMe. This server will need to be reachable from the internet and capable of processing the webhook payloads.

Additional Considerations
Security: Ensure that all communication with ItsMe's API is over HTTPS and that you handle tokens securely.
Error Handling: Implement robust error handling for network requests and API responses.
User Interface: Provide a seamless experience for users to interact with ItsMe through your FWH application.
This is a high-level overview, and the specifics can vary based on ItsMe's current API documentation and the exact requirements of your application. Be sure to refer to the ItsMe API documentation for detailed instructions and the most up-to-date information.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Implementing ItsMe in a FWH-application

Postby driessen » Thu Aug 08, 2024 8:12 am

Antonio,

Thanks a lot for your answer. Quite a lot of information.

Give me some time to think it over or trying to get the implementation done.

I'll come back to it if necessary.
Regards,

Michel D.
Genk (Belgium)
_____________________________________________________________________________________________
I use : FiveWin for (x)Harbour v. 24.07 - Harbour 3.2.0 (February 2024) - xHarbour Builder (January 2020) - Bcc773
User avatar
driessen
 
Posts: 1422
Joined: Mon Oct 10, 2005 11:26 am
Location: Genk, Belgium


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 81 guests