VerifyKit 0.7.2

VerifyKit 0.7.2

Alper KayabasiVerifyKitSeyfeddin Bassarac 维护。



VerifyKit 0.7.2

  • VerifyKit

VerifyKit

Platform Status License

Swift support CocoaPods Compatible Carthage compatible

VerifyKit 是下一代电话号码验证系统。用户可以轻松验证电话号码,而无需输入电话号码或PIN码。

它是如何工作的?

  1. https://www.verifykit.com 上注册您的应用程序并获取客户端密钥和服务器密钥。
  2. 将 VerifyKit SDK 添加到您的应用程序
  3. 配置并启动 VerifyKit SDK
  4. 验证完成时,向您的后端服务发送 VerifyKit SDK 给您的 sessionId
  5. 在您的服务器端,使用 serverKeysessionId 从 VerifyKit 服务获取用户的电话号码。您可以查看 后端集成

VerifyKit Flow

安全性

ServerKey 用于从 VerifyKit 服务获取信息。请确保 ServerKey 安全。不要将其包含在客户端代码库中。

要求

  • Xcode 12.0+
  • iOS 11.0+

安装

CocoaPods

您可以通过 CocoaPods 安装此框架。

pod 'VerifyKit'

配置 Info.plist

为了成功使用此框架,您需要在您的 plist 文件中添加 VerifyKitKeyVerifyKitSecret。这一步是必须的。

要从您的应用中打开第三方消息应用,您需要将其 URL 方案添加到您的 plist 文件中的 LSApplicationQueriesSchemes 键。iOS 14 之后,如果您需要在默认浏览器不是 Safari 的设备上打开关联域 URL,也需要将 https 作为 URL 方案添加。

以源代码方式打开您的 Info.plist 文件,并在最终 </dict> 元素之前插入以下 XML 片段。

<key>VerifyKitKey</key>
<string>{your-verifykit-key}</string>
<key>VerifyKitSecret</key>
<string>{your-verifykit-secret-key}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>whatsapp</string>
  <string>telegram</string>
  <string>viber</string>
  <string>https</string>
</array>

在通过第三方消息应用成功验证后,用户需要返回主应用。如果您的应用有关联域,我们可以在消息中添加一个深层链接,以便于快速和简单地重定向。

如果您的应用支持关联域,请在 VerifyKit 站点填写带您的域的 深层链接 字段。

如果您的应用不支持关联域,您可以在 深层链接 字段中输入您的应用 URL 方案的自定义链接,例如 yourapp://welcome。但是,某些消息应用可能不识别 URL 方案为可点击链接,因此在这种情况下快速重定向可能不可用。

使用方法

import VerifyKit


let kit = VerifyKitInstance()
let viewController = kit.viewControllerForLogin()
self.present(viewController, animated: true, completion: nil)

您可以通过VerifyKitDelegate协议来获取结果。

viewController.kitDelegate = self

extension ViewController: VerifyKitDelegate {

    func didSuccess(with sessionCode: String) {
        print("VerifyKitDelegate didSuccess with sessionCode:\(sessionCode)")
    }

    func didFail(with error: VerifyKitError) {
        print("VerifyKitDelegate didFail with error:\(error)")
    }
}

当调用didSuccess代理时,VerifyKit会自动关闭viewControllerForLogin()。为了给用户提供尝试其他验证方法或重新开始的机会,当调用didFail时不会关闭viewControllerForLogin()。如果希望在特定错误类型下手动关闭它,可以这样做。

当用户选择第三方 Messaging 应用进行验证,发送消息但未返回主应用并关闭它时,可能会出现一种情况。在这种情况下,该用户已通过VerifyKit进行验证,但主应用尚不知情。

为此,我们提供了一个检查中断会话状态的方法。使用此方法是可选的,由您决定。

即使您未实现此方法,VerifyKit也会处理中断的验证。

VerifyKit.checkInterruptedSession { [weak self] sessionCode in
  guard let sessionCode = sessionCode else {
    // Start VerifyKit flow or do what your app needs
    return
  }

  // You have an interrupted sessionCode from last time.
  // Tell your API.
  print("sessionCode \(sessionCode)")
}

配置

let options = VerifyKitOptions(logActive: true)
let kit = VerifyKitInstance(options: options)

VerifyKitOptions 结构体

您可以更改VerifyKitOptions结构体中声明的设置。

public struct VerifyKitOptions {
    var environment: VerifyKitEnvironment = .debug // default
    var logActive: Bool = true // default
    var deviceID: String? // optional
}

public enum VerifyKitEnvironment {

    /// Stage environment for debug
    case debug

    /// Production environment for distribution
    case release
}

依赖

此产品包含由 Marcin Krzyzanowski 开发的软件(CyrptoSwift)。

其他说明

在您应用发布前,请将VerifyKitEnvironment更改为'release'而不是'debug'。

后端集成

根据您后端服务使用的语言,您可以使用以下选项之一。

您可以使用我们的php-sdk,例如;

$vfk = new \VerifyKit\VerifyKit($serverKey);

/** @var \VerifyKit\Entity\Response $result */
$result = $vfk->getResult($sessionId);

if ($result->isSuccess()) {
    echo "Phone number : " . $result->getPhoneNumber() .
        ", Validation Type : " . $result->getValidationType() .
        ", Validation Date : " . $result->getValidationDate()->format('Y-m-d H:i:s') . PHP_EOL;
} else {
    echo "Error message : " . $result->getErrorMessage() . ", error code : " . $result->getErrorCode() . PHP_EOL;
}

您可以使用我们的python-sdk,例如;

from VerifyKit import Verify

verify = Verify(server_key="{SERVER-KEY}")
verify.validation(session_id='{SESSION-ID}')

if verify.is_valid:
    #Validation success.
    print(verify.response())

elif verify.is_valid == False:
    #Validation fail.
    print(verify.response())
 

或者您可以使用如下curl请求;

curl --location --request POST 'https://api.verifykit.com/v1.0/result' \
--header 'X-Vfk-Server-Key:{SERVER-KEY}' \
--header 'Content-Type: application/json' \
--form 'sessionId={{SESSION-ID}}’

支持

如果您有任何问题或请求,请随意创建一个问题

作者

VerifyKit 由 VerifyKit DevTeam 拥有和维护。

许可协议

MIT 许可协议

版权所有 © 2019 VerifyKit. http://verifykit.com

任何人可以在不收取任何费用的情况下,获得此软件及其相关文档文件(以下简称“软件”)的副本,并在不受限制的情况下使用该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,以及允许向软件提供者提供该软件的人这样做,前提是遵守以下条件

上述版权声明和本许可协议应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者对因合同、侵权或其他行为而产生的任何索赔、损害或其它责任,无论是直接、间接、附带、特殊、衍生还是后果性赔偿,概不负责,即使被告知可能有此类赔偿风险。