LoginProvider.swift 748 B

123456789101112131415161718192021
  1. import AuthenticationServices
  2. extension Login {
  3. final class Provider: BaseProvider, LoginProvider {
  4. @Injected() var authorizationManager: AuthorizationManager!
  5. @Injected() private var keychain: Keychain!
  6. func authorize(credentials: ASAuthorizationAppleIDCredential) {
  7. authorizationManager.authorize(credentials: credentials)
  8. .sink { _ in
  9. self.keychain.setValue(CredentialsWrapper(credentials), forKey: Config.credentialsKey)
  10. }
  11. .store(in: &lifetime)
  12. }
  13. var credentials: ASAuthorizationAppleIDCredential? {
  14. keychain.getValue(CredentialsWrapper.self, forKey: Config.credentialsKey)?.credentials
  15. }
  16. }
  17. }