Quantcast
Channel: Security
Viewing all articles
Browse latest Browse all 4737

Facebook oAuth login

$
0
0

Hello everyone, I am trying to implement Facebook login/account creation. 

My login page redirects to Facebook and receives a proper response. However it seems to get stuck on the FBCallback page and hangs up and I can't figure out why....

This is my FBCallback.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        string url = "";
        // cache the Request code, since LINQ does not evaluate at runtime properly
        string authCode = Request["code"];
        oAuthFacebook oAuth = new oAuthFacebook();
        if (authCode == null)
        {
            //Redirect the user back to Facebook for authorization.
            Response.Redirect(oAuth.AuthorizationLinkGet());
        }
        else
        {
            //Get the access token and secret.
            oAuth.AccessTokenGet(authCode);
            if (oAuth.Token.Length > 0)
            {
                Lit1.Text += "0";
                //We now have the credentials, so we can start making API calls
                url = "https://graph.facebook.com/me/?access_token=" + oAuth.Token;
                string json = oAuth.WebRequest(oAuthFacebook.Method.GET, url, String.Empty);
                if (json != null)
                {
                    Lit1.Text += "";
                    // parse the response object first, we may want to create a user from it.
                    JObject o = JObject.Parse(json);
                    string connstring = System.Configuration.ConfigurationManager.ConnectionStrings["MembershipConnection"].ConnectionString;
                    using (SqlConnection con = new SqlConnection(connstring))
                    {
                        con.Open();

                        bool exists = false;
                        string username = (string)o["first_name"] + " " + (string)o["last_name"];
                        string email = (string)o["email"];
                        // create a command to check if the username exists
                        using (SqlCommand cmd = new SqlCommand("select count(*) from Users inner join memberships on users.userid=memberships.userid where UserName=@UserName and email=@email", con))
                        {
                            cmd.Parameters.AddWithValue("UserName", username);
                            cmd.Parameters.AddWithValue("email", email);
                            exists = (int)cmd.ExecuteScalar() > 0;
                        }

                        // if exists, show a message error
                        if (exists)
                            FormsAuthentication.SetAuthCookie(username, true);
                        else
                        {
                            //Create the new user
                        }
                        con.Close();
                    }
                }
            } // if our token was blank we have failure
            else
            {
                Lit1.Text = "blank";
            }
            Response.Redirect("/");
        }
    }

Thanks!


Viewing all articles
Browse latest Browse all 4737

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>