Authenticate your users

Create your auth instance

This instance is used to manage authentication with Viafoura

let auth = ViafouraSDK.auth()

Get user auth status

Retrieve the current user auth status.

auth.getUserLoginStatus(completion: { result in
     switch result {
            case .success(let loginStatus):
                if loginStatus == .loggedIn {
                
                } else if loginStatus == .notLoggedIn {
                    
                }
            case .failure(let error):
                print(error.localizedDescription)
                break
      }
})
LoginStatusValue
notLoggedInUser is not currently logged in
loggedInUser is currently logged in

Logout

Log the user out.

auth.logout()

Basic login

Perform basic login with e-mail and password.

auth.login(email: email, password: password, completion: { result in
    switch result {
    case .success(let loginData):
    case .failure(let loginError):
        print(loginError.errorDescription)
    }
})

Basic signup

auth.signup(name: name, email: email, password: password, completion: { result in
    switch result {
    case .success(let signUpData):
    case .failure(let signUpError):
        print(signUpError.errorDescription)
    }
})

Cookie login

More information about how our cookie login works: Cookie Login

auth.cookieLogin(token: token, type: "viafouraDefinedCookie", completion: { result in
    switch result {
    case .success(let cookieLoginData):
    case .failure(let cookieLoginError):
        print(cookieLoginError.errorDescription)
    }
})

OpenID login

More information about how our OIDC login works: OIDC Login

auth.openIdLogin(token: token, completion: { result in
    switch result {
    case .success(let openIdLoginData):
    case .failure(let openIdLoginError):
        print(cookieLoginError.errorDescription)
    }
})

Login Radius login

auth.loginRadiusLogin(token: token, completion: { result in
    switch result {
    case .success(let openIdLoginData):
    case .failure(let openIdLoginError):
        print(cookieLoginError.errorDescription)
    }
})

Social login

auth.socialLogin(token: token, completion: { result in
    switch result {
    case .success(let openIdLoginData):
    case .failure(let openIdLoginError):
        print(cookieLoginError.errorDescription)
    }
})

Request password reset

auth.resetPassword(email: email, completion: { result in
    switch result {
    case .success(let result):
    case .failure(let passwordResetError):
        print(cookieLoginError.errorDescription)
    }
})

What’s Next