AuthNavigation 1.2.3

AuthNavigation 1.2.3

Pascal Braband维护。



  • Pascal Braband

CocoaPods Compatible Platform Swift Version License

AuthNavigation

AuthNavigation是一个iOS库,能够组织您应用中的登录流程,使自动登录变得简单。AuthNavigation会自动检查用户是否需要登录,并基于结果展示正确的屏幕。

AuthNavigation还可以组织加载屏幕,例如需要发起服务器请求时。

您可以在一个或多个UIViewController上设置AuthNavigation,它可以验证整个屏幕或其中的一部分。

AuthNavigation不是UINavigationController的替代品,实际上您可以同时使用它们。



AuthNavigation Demo

它不是什么

AuthNavigation并不是提供现成的登录和加载界面模板的。AuthNavigation提供的是创建带有额外加载页面的简单登录流程的导航结构,设计需要独立完成。

流程

以下是一个简单流程图的登录流程总结

Login Flow

安装

手册

您可以直接将文件从文件夹拖放到项目中,并使用这些类。

CocoaPods

CocoaPods是Cocoa项目的依赖管理器。要使用CocoaPods将AuthNavigation集成到您的Xcode项目中,请在您的Podfile中指定它

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'AuthNavigation', '~> 1.1'
end



使用方法

使用AuthNavigation有两种方式

  • 基本(登录): HostVC被保护登录屏幕LoginVC保护。AuthNavigation将检查是否要显示此登录屏幕

  • 高级(登录 + 加载):基本加上在LoginVC之前显示的LoadingVC。如果您需要要求服务器检查用户是否应登录,则可能很有用。

按照以下步骤将AuthNavigation集成到您的项目中

界面设置

基本创建2个VC,为高级创建3个(为每个指定唯一的Storyboard ID)

HostVC设置

首先创建一个AUAuthNavigator实例(您可以使用AUAuthNavigator.sharedInstance或创建自己的静态实例)。然后设置LoginVCLoadingVC的Storyboard ID到相应的属性。要实际使用认证器,在viewWillAppear中调用startAuthentication,并在viewDidDisappear中调用stopAuthentication

class HostVC: UIViewController {
    
    static let authNavigator = AUAuthNavigator()
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        MainViewController.authNavigator.delegate = self
           
        MainViewController.authNavigator.loginVCId = "LoginVC"
        MainViewController.authNavigator.loadingVCId = "LoadingVC"
    }

    override func viewWillAppear(_ animated: Bool) {
        MainViewController.authNavigator.startAuthentication()
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        MainViewController.authNavigator.stopAuthentication()
    }
}

将认证器的委托设置为self。因此HostVC需要符合AUAuthenticatable协议

extension HostVC: AUAuthenticatable {
    
    func shouldLogin() -> Bool {
        // Implement your authentication process here. If your user needs to login, return true, if he is already logged in return false
    }
    
    func willReturnFromLoginActions(success: Bool) {
        // Additional actions after login (not necessary)
    }
}

加载VC配置

完成自定义加载后,请在HostVC的静态authNavigator实例上调用finishLoading()

登录VC配置

登录完成后,请在HostVC的静态authNavigator实例上调用finishLogin(success: Bool)。请记住,你可能需要在LoginVC自身上处理登录失败,而不是调用finishLogin(success: false),因为这只会重新显示登录屏幕。

注销

请在您的HostVC中调用logout(presentLoading: Bool)。如果presentLoading设置为true,将显示加载屏幕;如果设置为false,则直接显示登录屏幕。

AUAuthenticator的附加设置

  • hostView这是您的登录和加载屏幕的容器视图,如果您不想整个屏幕都被身份验证覆盖,将此设置为HostVC中的特定视图可能非常有用。默认情况下,它设置为整个屏幕。
  • overlayColor覆盖用于在授权期间隐藏您的HostVC的内容。如果您需要此覆盖层具有特殊的颜色,请在此处指定它。默认行为是使用hostView的背景颜色。
  • animationDuration您可以在此处指定AUAuthNavigator(覆盖层、登录和加载淡入/淡出)的所有动画的自定义持续时间。



许可证

有关许可证权利和限制(MIT),请参阅LICENSE文件。

有关此项目的动机,请参阅这篇文章