KongServiceAuthenticationKit 1.0.4

KongServiceAuthenticationKit 1.0.4

kongljh 维护。



  • kongljh

KongServiceAuthenticationKit

  • 基于网页视图的登录服务提供
  • 提供身份验证相关功能

KongServiceManager

  • 可以使用 KongService 使用用户相关功能。

초기화

let kongServiceManager = KongServiceManager()

토큰 초기화

kongServiceManager.set(token:"{Token}")
  • 可以通过发放的个人令牌初始化,也可以通过 KongServiceLoginController 接收到的令牌进行初始化。

사용자 정보 가져오기

kongServiceManager.getMe(onComplete: @escaping (Result<GetMeResponse, ERROR>) -> Void)
  • 初始化令牌后即可使用。
  • 可以根据令牌获取用户信息。

KongServiceLoginController

  • 通过网页视图实现Kong服务登录。

初始化

let kongServiceLoginController = KongServiceLoginController(seviceType: {serviceType})
kongServiceLoginController.delegate = self
kongServiceLoginController.presentationContextProvider = self
kongServiceLoginController.performRequests()
  • 需要指定服务类型才能使用。
  • 声明为属性后使用kongServiceLoginController。
  • 在方法块中使用时,KongServiceLoginController将被释放。
  • delegate
    • 用于处理登录结果的delegate。
  • presentationContextProvider
    • 用于将网页视图呈现到屏幕上。
  • performRequest
    • 用于呈现登录视图。

登录

extension ViewController:KongServiceLoginControllerDelegate{
    func kongServiceLoginController(_ controller: KongServiceLoginController, didLoginSuccess accessToken: String) {
        accessTokenTextView.text  = accessToken
    }
    
    func kongServiceLoginControllerLoginCanceled(_ controller: KongServiceLoginController) {
        print("취소됨.")
    }
}
  • 登录成功时将执行kongServiceLoginController(:didLoginSuccess:)。
    • 可以获取accessToken。
  • 取消登录时将执行kongServiceLoginControllerLoginCanceled(:)。

使用方法

class ViewController: UIViewController {

    @IBOutlet weak var accessTokenTextView: UITextView!
    
    var kongServiceManager:KongServiceManager!
    var kongServiceLoginController:KongServiceLoginController!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        kongServiceManager = KongServiceManager()
        
    }
    
    @IBAction func showLoginView(_ sender: UIButton) {
        kongServiceLoginController = KongServiceLoginController(serviceType: .kongEco)
        kongServiceLoginController.delegate = self
        kongServiceLoginController.presentationContextProvider = self
        kongServiceLoginController.performRequests()
    }
    
}

extension ViewController:KongServiceLoginControllerDelegate{
    func kongServiceLoginController(_ controller: KongServiceLoginController, didLoginSuccess accessToken: String) {
        accessTokenTextView.text  = accessToken
        kongServiceManager.set(token: accessToken)
    }
    
    func kongServiceLoginControllerLoginCanceled(_ controller: KongServiceLoginController) {
        
    }
    
    
}

extension ViewController:KongServiceLoginControllerPresentationContextProviding{
    func presentationAnchor(for controller: KongServiceLoginController) -> KongServiceLoginPresentationAnchor {
        return self.view.window!
    }
}