FastLogin 1.13

FastLogin 1.13

ahmet Omer NesimGökçe Çetiner维护。



  • Turkcell 和 FastLogin

FastLogin

FastLogin 为 Turkcell 登录系统提供集成。我们开发了一个高度稳健、安全、轻量级、可配置且非常简单易嵌入的 SDK。

FastLogin IOS SDK 与 IOS 9.0 及以上版本兼容。Swift 3.2 及以上版本

入门

安装

按照以下步骤将其添加到您的 Podfile 中:

pod FastLogin, '#version'

注意

对于 Objective C 用户,

由于您无法在 Objective-C 中子类化 Swift 类。

使用 coordinatorDelegate 参数来获取回调,并处理以下方法

- (void)dgLoginToken:(NSString *)token {

}

- (void)dgLoginFailure:(NSString * _Nonnull)reason errorMessage:(NSString * _Nonnull)errorMessage {

}

- (void)dgConfigurationFailureWithConfigError:(NSString * _Nonnull)configError {
    
}

    ...

登录协调器

所有操作都通过LoginCoordinator类处理。您需要实例化它,并传入根视图控制器,即从该视图控制器启动(显示)登录过程。

class ViewController: UIViewController, LoginCoordinatorDelegate {
    lazy var loginCoordinator: LoginCoordinator = {
        let loginVC = LoginCoordinator( self)
        loginVC.delegate = self
        return loginVC
    }()

    ...


    @IBAction func startAction(_ sender: Any) {
        loginCoordinator.start(dgFlow: .login)
    }

    @IBAction func registerAction(_ sender: Any) {
        loginCoordinator.start(dgFlow: .register)
    }

    @IBAction func switchUserAction(_ sender: Any) {
        loginCoordinator.start(dgFlow: .change_user)
    }

    @IBAction func logoutAction(_ sender: Any) {
        loginCoordinator.logout()
    }

    ...

之后,在协调器上调用start。就是这样!

自定义

如果想要自定义LoginCoordinator的UI,您应该提供一个DGTheme对象。

请参阅项目文档获取详细信息。

class LoginCoordinator: DigitalGate.DGLoginCoordinator {

}

启动

处理LoginCoordinator启动时需要执行的操作。请务必调用super。

启动登录过程之前,您需要提供以下参数:

-appID:由FastLogin管理员分配给每个应用的ID

-language:SDK的语言,默认为TR

-useTestServer:使用测试服务器或生产服务器

-disableCellLogin:如果为true,蜂窝登录功能将无法使用。

-autoLoginOnly:如果为true,只能使用蜂窝登录和记住我。

-disableAutoLogin:如果为true,登录过程将强制用户进行。

-accessGroup:应用程序的Keychain访问组(如有),

override func start(dgFlow: DGFlow) {
    appID = "2"
    useTestServer = true
    disableAutoLogin = false
    autoLoginOnly = false
    disableCell = false
    language = DGLanguage(from: "TR")
    //accessGroup = ""
    super.start(dgFlow: dgFlow)
    configureAppearance()
}

完成回调

重写这些其它3个回调方法以处理用户尝试登录后的操作,

这里将调用您的自己的API。

override func login(token: String) {
    // Handle login via your API
    delegate?.loginSucceeded(token)
    print("Login with: email =\(token)")
}

override func configurationFailure(configError: String) {
    print(configError)
    delegate?.loginConfigurationFailure(configError: configError)
}

override func failure(_ reason: String, errorMessage: String) {

    if reason == dgKSessionTimeout as String {
        print(errorMessage)
    } else if reason == dgKUserExit as String {
        print(errorMessage)
    } else if reason == dgKNotLoginToLoginSDK as String {
        print(errorMessage)
    }
    delegate?.loginFailure(reason, errorMessage: errorMessage)
}

登出

您可以通过调用logout()方法从SDK登出。

作者

Ahmet Ömer Nesim, [email protected]