boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

PHP集成Mobile-ID身份验证:sk-id-solutions/mobile-id-php-client如何解决身份验证难题


avatar
作者 2025年9月7日 10

在开发需要高安全性的 Web 应用时,我们经常需要集成可靠的身份验证机制。Mobile-ID 是一种流行的移动身份验证方案,它允许用户使用手机 SIM 卡进行身份验证和数字签名。然而,直接与 Mobile-ID 的 API 进行交互可能会非常复杂,需要处理各种底层细节,例如生成哈希、处理会话状态以及验证签名等。

为了解决这个问题,我发现了

sk-id-solutions/mobile-id-php-client

这个 php 客户端库。它提供了一个简单易用的接口,可以帮助我们快速地将 mobile-id 集成到 php 应用中。

使用 composer 安装

sk-id-solutions/mobile-id-php-client

非常简单:

<pre class="brush:php;toolbar:false;">composer require sk-id-solutions/mobile-id-php-client "<VERSION>"

安装完成后,就可以开始使用该库进行 Mobile-ID 身份验证了。以下是一个简化的身份验证流程示例:

<pre class="brush:php;toolbar:false;">require_once __DIR__ . '/vendor/autoload.php';  use SkMidMobileIdClient; use SkMidAuthenticationRequestBuilder; use SkMidDisplayTextFormat; use SkMidLanguageENG; use SkMidExceptionMidException; use SkMidUtilMidInputUtil; use SkMidExceptionMidInvalidPhoneNumberException; use SkMidExceptionMidInvalidNationalIdentityNumberException;  try {     // 1. 验证用户输入     $phoneNumber = MidInputUtil::getValidatedPhoneNumber($_POST['phoneNumber']);     $nationalIdentityNumber = MidInputUtil::getValidatedNationalIdentityNumber($_POST['nationalIdentityNumber']);      // 2. 创建 MobileIdClient 实例     $client = MobileIdClient::newBuilder()         ->withRelyingPartyUUID($config['relyingPartyUUID'])         ->withRelyingPartyName($config['relyingPartyName'])         ->withHostUrl($config['hostUrl'])         ->withLongPollingTimeoutSeconds(60)         ->withsslPinnedPublicKeys("sha256//k/w7/9MIvdN6O/rE1ON+HjbGx9PRh/zSnNJ61pldpCs=;sha256//some-future-ssl-host-key")         ->build();      // 3. 创建身份验证请求     $authenticationHash = MobileIdAuthenticationHashToSign::generateRandomHashOfDefaultType();     $verificationCode = $authenticationHash->calculateVerificationCode();      $request = AuthenticationRequest::newBuilder()         ->withPhoneNumber($phoneNumber)         ->withNationalIdentityNumber($nationalIdentityNumber)         ->withHashToSign($authenticationHash)         ->withLanguage(ENG::asType())         ->withDisplayText("Log into self-service?")         ->withDisplayTextFormat(DisplayTextFormat::GSM7)         ->build();      // 4. 发起身份验证请求     $response = $client->getMobileIdConnector()->initAuthentication($request);      // 5. 轮询会话状态,直到身份验证完成     $finalSessionStatus = $client->getSessionStatusPoller()->fetchFinalSessionStatus($response->getSessionID());      // 6. 获取身份验证结果     $authenticationResult = $client->createMobileIdAuthentication($finalSessionStatus, $authenticationHash);      // 7. 验证身份验证结果     $validator = AuthenticationResponseValidator::newBuilder()         ->withTrustedCaCertificatesFolder(__DIR__ . "/test_numbers_ca_certificates/")         ->build();     $validator->validate($authenticationResult);      // 8. 获取用户信息     $authenticatedPerson = $authenticationResult->constructAuthenticationIdentity();      echo 'Welcome, ' . $authenticatedPerson->getGivenName() . ' ' . $authenticatedPerson->getSurName() . '!';  } catch (MidInvalidPhoneNumberException $e) {     echo 'The phone number you entered is invalid'; } catch (MidInvalidNationalIdentityNumberException $e) {     echo 'The national identity number you entered is invalid'; } catch (MidException $e) {     echo 'Mobile-ID authentication failed: ' . $e->getMessage(); }

通过使用

sk-id-solutions/mobile-id-php-client

,我们可以极大地简化 Mobile-ID 的集成过程,将更多的精力放在业务逻辑的开发上。

PHP集成Mobile-ID身份验证:sk-id-solutions/mobile-id-php-client如何解决身份验证难题

极简智能王

极简智能- 智能聊天AI绘画,还可以创作、编写、翻译、写代码等多种功能,满足用户生活和工作的多方面需求

PHP集成Mobile-ID身份验证:sk-id-solutions/mobile-id-php-client如何解决身份验证难题27

查看详情 PHP集成Mobile-ID身份验证:sk-id-solutions/mobile-id-php-client如何解决身份验证难题

优势总结:

立即学习PHP免费学习笔记(深入)”;

  • 简化集成: 提供了简单易用的 API,避免了直接与底层 Mobile-ID 协议交互的复杂性。
  • 错误处理: 内置了各种异常处理机制,可以更好地处理身份验证过程中可能出现的错误。
  • 安全性: 支持 SSL 证书 pinning,可以确保与 Mobile-ID API 的通信安全可靠。
  • 灵活性: 提供了多种配置选项,可以根据实际需求进行定制。
sk-id-solutions/mobile-id-php-client

是一个强大的工具,可以帮助 PHP 开发者轻松地将 Mobile-ID 集成到他们的应用中,提升用户身份验证的安全性和便捷性。



评论(已关闭)

评论已关闭