mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 03:37:39 +00:00
136 lines
4.1 KiB
Swift
136 lines
4.1 KiB
Swift
//
|
|
// FirstViewController.swift
|
|
// Vendoo
|
|
//
|
|
// Created by Okechi Onyeje on 5/22/16.
|
|
// Copyright © 2016 Okechi Onyeje. All rights reserved.
|
|
//
|
|
|
|
//NEED TO FIX AUTO LOGIN USING KEYCHAIN AND SECURITY FRAMEWORKS, WILL WORK ON LATER
|
|
|
|
import UIKit
|
|
import FirebaseAuth
|
|
import Locksmith
|
|
|
|
|
|
class SignInViewController: UIViewController {
|
|
//class variables
|
|
var isValidated: Bool! = false
|
|
|
|
//IBOutlets
|
|
@IBOutlet weak var email: UITextField!
|
|
@IBOutlet weak var password: UITextField!
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
// Do any additional setup after loading the view, typically from a nib.
|
|
|
|
|
|
//set up delegates
|
|
self.email.delegate = self
|
|
self.password.delegate = self
|
|
|
|
if NSUserDefaults.standardUserDefaults().boolForKey("signedIn"){
|
|
|
|
//load user account from keychain
|
|
self.email.text = NSUserDefaults.standardUserDefaults().objectForKey("email") as? String
|
|
|
|
let dictionary = Locksmith.loadDataForUserAccount(self.email.text!, inService: "vendoo")
|
|
self.password.text = dictionary!["pass"] as? String
|
|
signInUser(self)
|
|
}else{
|
|
print("user not found")
|
|
}
|
|
|
|
}
|
|
|
|
override func didReceiveMemoryWarning() {
|
|
super.didReceiveMemoryWarning()
|
|
// Dispose of any resources that can be recreated.
|
|
}
|
|
|
|
}
|
|
|
|
//IBActions
|
|
extension SignInViewController {
|
|
@IBAction func signInUser(sender: AnyObject) {
|
|
FIRAuth.auth()?.signInWithEmail(email.text!, password: password.text!) { (user, error) in
|
|
if let error = error {
|
|
print(error.localizedDescription)
|
|
return
|
|
} else {
|
|
|
|
dispatch_async(dispatch_get_main_queue(), { () -> Void in
|
|
/*If the user has not already signed in then save their log in info*/
|
|
if !(NSUserDefaults.standardUserDefaults().boolForKey("signedIn")){
|
|
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "signedIn")
|
|
NSUserDefaults.standardUserDefaults().setObject(self.email.text, forKey: "email")
|
|
//KeychainWrapper.setObject(self.password.text!, forKey: "password")
|
|
|
|
//save data to keychain
|
|
do{
|
|
try Locksmith.saveData(["pass": self.password.text!], forUserAccount: self.email.text!, inService: "vendoo")
|
|
print("account credentials saved")
|
|
}
|
|
catch{
|
|
//could not save data to keychain
|
|
print("account credentials could not be saved")
|
|
|
|
}
|
|
print("User saved")
|
|
}
|
|
|
|
//will remove this line of code once
|
|
//removes saved user until autologin and security keychain operational
|
|
//NSUserDefaults.standardUserDefaults().setBool(false, forKey: "signedIn")
|
|
self.performSegueWithIdentifier("HomeScreenSegue", sender:nil)
|
|
|
|
})
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//Mark: - TextField Delegate Methods
|
|
extension SignInViewController: UITextFieldDelegate {
|
|
|
|
func textFieldShouldReturn(textField: UITextField) -> Bool {
|
|
//dismissKeyboard()
|
|
self.view.endEditing(true)
|
|
return false
|
|
}
|
|
|
|
}
|
|
|
|
//MARK: - Navigation Methods
|
|
extension SignInViewController {
|
|
|
|
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
|
|
switch (segue.identifier!) {
|
|
|
|
case "HomeScreenSegue":
|
|
//logic to prepare user for application use after firebase login
|
|
//Testing OAuth
|
|
|
|
break
|
|
default:
|
|
//default logic for any other segues
|
|
break
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//Private Class Helper Methods
|
|
extension SignInViewController {
|
|
|
|
}
|
|
|
|
|
|
|