2017-08-21 7 views
1

Ich benutze Sub-Domain für alle Clients wie client.example.com und dann maskierte ich ihre Domäne darüber. Ich habe soziale Logins Google, Facebook und LinkedIn hinzugefügt.Soziale Logins mit maskierten Domain

Facebook und LinkedIn Scheint zu arbeiten, aber das Problem mit Google Login zeigt es nur leere weiße Seite, wenn ich die URL für die Anmeldung.

ist es möglich, soziale Logins für maskierte Domain zu verwenden?

weil andere zwei gut funktionieren und google keinen Fehler wirft, so konnte die Lösung nicht herausfinden.

Projekt ist in Laravel-5.1 und ich verwende Socialite

Jede Hilfe wäre toll

Danke im Voraus

Antwort

0

Schritt 1
Pod für Datei installieren pod 'Google/SignIn'
Schritt 2
Für den unteren Code zum Hinzufügen AppDelegate

AppDelegate.swift Import UIKit Import Google Import GoogleSignIn Import FacebookCore

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
var configureError: NSError? 
     GGLContext.sharedInstance().configureWithError(&configureError) 
     assert(configureError == nil, "Error configuring Google services: \(String(describing: configureError))") 

    return SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) 
} 

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 

print("Google+ url scheme") 
      return GIDSignIn.sharedInstance().handle(url, sourceApplication: sourceApplication, annotation: annotation) 

} 

@available(iOS 9.0, *) 
    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool { 

print("Google+ url scheme") 
      let sourceApplication = options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String 
      let annotation = options[UIApplicationOpenURLOptionsKey.annotation] 
      return GIDSignIn.sharedInstance().handle(url, sourceApplication: sourceApplication, annotation: annotation) 
} 

ViewController.swift

import UIKit 
    import GoogleSignIn 
    import FacebookCore 
    import FacebookLogin 

    class ViewController: UIViewController, GIDSignInDelegate, GIDSignInUIDelegate { 

     @IBOutlet weak var profileImage: UIImageView! 
     @IBOutlet weak var emailText: UITextField! 
     @IBOutlet weak var passwordText: UITextField! 
     @IBOutlet weak var rememberMeSegment: UISwitch! 
     @IBOutlet weak var appSignInButton: UIButton! 
     @IBOutlet weak var googleSignInButton: UIButton! 
     @IBOutlet weak var facebookSignInButton: UIButton! 
     @IBOutlet weak var appSignUpButton: UIButton! 

     override func viewDidLoad() { 
      super.viewDidLoad() 

     self.profileImage.layer.masksToBounds = false 
     self.profileImage.layer.cornerRadius = self.profileImage.frame.height/2 
     self.profileImage.clipsToBounds = true 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 

     self.navigationController?.navigationBar.isHidden = true 
    } 
     @IBAction func googleSignIn(sender: UIButton) { 
     GIDSignIn.sharedInstance().scopes = ["https://www.googleapis.com/auth/plus.login","https://www.googleapis.com/auth/plus.me"] 
     GIDSignIn.sharedInstance().shouldFetchBasicProfile = true 
     GIDSignIn.sharedInstance().uiDelegate = self 
     GIDSignIn.sharedInstance().delegate = self 
     GIDSignIn.sharedInstance().signIn() 
    } 

    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) { 

     if (error == nil) { 

      print("Name : \(user.profile.name!)") 
      print("Email : \(user.profile.email!)") 

      if let email = user.profile.email { 
       self.emailText.text = email 
      } 

      if(user.profile.hasImage){ 
       print("Profile Image : \(user.profile.imageURL(withDimension: 100))") 

       self.profileImage.downloadedFrom(link: user.profile.imageURL(withDimension: 100).absoluteString) 

      } else { 
       print("Profile Image : Profile image not available") 
      } 

      GIDSignIn.sharedInstance().signOut() 
      GIDSignIn.sharedInstance().disconnect() 

     } else { 
      let alertController = UIAlertController(title: "Error", message: "\(error.localizedDescription)") 
      self.present(alertController, animated: true, completion: nil) 
     } 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

- extension String { 
      func hexStringToUIColor() -> UIColor { 
       var cString:String = self.trimmingCharacters(in: .whitespacesAndNewlines).uppercased() 


     if (cString.hasPrefix("#")) { 
      cString.remove(at: cString.startIndex) 
     } 

     if ((cString.characters.count) != 6) { 
      return UIColor.gray 
     } 

     var rgbValue:UInt32 = 0 
     Scanner(string: cString).scanHexInt32(&rgbValue) 

     return UIColor(
      red: CGFloat((rgbValue & 0xFF0000) >> 16)/255.0, 
      green: CGFloat((rgbValue & 0x00FF00) >> 8)/255.0, 
      blue: CGFloat(rgbValue & 0x0000FF)/255.0, 
      alpha: CGFloat(1.0) 
     ) 
    } 
} 

extension UIAlertController { 
    convenience init(title: String, message: String) { 
     self.init(title: title, message: message, preferredStyle: .alert) 
     let action = UIAlertAction(title: NSLocalizedString("OK", comment: "OK action"), style: .default, handler: nil) 
     addAction(action) 
    } 
}