top of page
Search

Facebook Login ASP.NET Website: How to Forward Request Information with a Proxy or Load Balancer

  • ruslangvupdr
  • Aug 16, 2023
  • 13 min read


In order to get an access token from your users on a website you must use the either the Facebook JavaScript SDK or perform what is called server flow authentication. In this tutorial we will use the Facebook JavaScript SDK to perform authentication. The Facebook JavaScript SDK will handle all the details of displaying the login dialog, requesting permissions, and parsing the authentication cookie for the access token.


However, for OpenID Connect, clicking the icon will redirect you to external website and you will login on the external website. After that, you will be redirected back to ASP.NET Zero website (to login.component.ts). Then, the callback function for OpenID Connect will be called.




facebook login asp.net website



All callback functions makes a request to server-side app to validate the information gathered from external or social login provider. If the information is validated, a local user record will be created (only for the first time) and user will be logged in to ASP.NET Zero website.


This is the first article on facebook api integration in asp.netenviorment. It demonstrates how to integrate login button on theweb page in order to obtain access token that we'll need forfurther tutorials.


Hi.The above header refers?I need to add a facebook login system as an alternative to thelogin system that my VB asp.net app currently uses. I am running iton the 3.5 framework.Your quick assistance in this regard would be muchappreciated.Thanks.MDi


So, Social login is a form of single sign-on using existing login information from an identity provider such as Facebook, Twitter, Google, or Microsoft to sign into a third-party website and using third party response create a new login account specifically for your website.


The application id and secret can be obtained by registering for an application with the corresponding provider. For facebook you can do that here. You would also need to configure the web api endpoint as a website platform when obtaining the api keys. Now on querying the endoint the client will get back the endpoint that it needs to hit when an authentication with Facebook is required. A redirect url is to be passsed along with the request, to which the api will redirect to after succesfull authentication with the token. By default email is not received from facebook, but you can override this behaviour by providing some extra options when registering the provider as shown below. The OnAuthenticated method on the FacebookProvider gets called once the user is authenticated with facebook. At this point you can get the Email details explicitly and add it to the claims.


Now that we have got the list of supported list of providers, we can make the request to the required provider from the client. This is simply done by navigating to the url obtained for the corresponding provider in the previous request, i.e to the ExternalLogin endpoint. If the user is already authenticated (detected via cookie), then the user is redirected to the redirect url provided in above step. If the user is not authenticated then the login page of the corresponding provider will be shown and after a successfull login the redirection will happen. The token that is received here is the custom token that gets generated by the web-api and should not be mistaken for the authorization server's(facebook) token itself.


The owin middleware abstracts away the interaction with the authorization server, Facebook in our case here. On successfull login in facebook, it redirects to '/signin-facebook along with the facebook token. We can get the username or email from the claims provided by the authentication server that can then be passed back to the client for registering the user in the next step. The ExternalLoginData class get the data from the claims. I have modified this to use the new Email property that we have added. To return this email address to the client, we need to override the method as shown below in ApplicationOAuthProvider


Hello masterI just finished developing a very interesting PC game, and I am trying to do a website for it.In this website users can upload custom files generated by my game. Users can only upload when logged in using only google, facebook and microsoft accounts.


I have followed the above steps and implemented the google login in my website logicalfeed.com. It is working fine in my local website i.e., with localhost URL, but when I try the same in live website ( ) I am getting the access denied error. I have already enabled the Google+ API for my app. I have been facing this problem since a week. Can you please help me here.


The angularx-social-login module is a social login and authentication module for Angular 8 (supports Angular 4+). It supports authentication with google, facebook, twitter, and other providers too and is super easy to use. To find out more about this module, please click here.


You can use the Facebook API to write Python Scripts to log into Facebook from your application"}},"@type":"Question","name":"\ud83d\udc49 Is there an alternative to using Selenium for Login to Facebook using Python?","acceptedAnswer":"@type":"Answer","text":"There are many alternatives to Selenium that you can check here Though some of the tools may not support Python"]}],"@id":" -login-using-python.html#schema-21745","isPartOf":"@id":" -login-using-python.html#webpage","publisher":"@id":" ","image":"@id":" _1457_FacebookLog1.png","inLanguage":"en-US","mainEntityOfPage":"@id":" -login-using-python.html#webpage"}]}document.documentElement.classList.remove( 'no-js' );img.wp-smiley,img.emoji display: inline !important;border: none !important;box-shadow: none !important;height: 1em !important;width: 1em !important;margin: 0 0.07em !important;vertical-align: -0.1em !important;background: none !important;padding: 0 !important;body--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--theme-palette-1: #3182CE;--wp--preset--color--theme-palette-2: #2B6CB0;--wp--preset--color--theme-palette-3: #1A202C;--wp--preset--color--theme-palette-4: #2D3748;--wp--preset--color--theme-palette-5: #4A5568;--wp--preset--color--theme-palette-6: #718096;--wp--preset--color--theme-palette-7: #EDF2F7;--wp--preset--color--theme-palette-8: #F7FAFC;--wp--preset--color--theme-palette-9: #FFFFFF;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 14px;--wp--preset--font-size--medium: 24px;--wp--preset--font-size--large: 32px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--larger: 40px;.has-black-colorcolor: var(--wp--preset--color--black) !important;.has-cyan-bluish-gray-colorcolor: var(--wp--preset--color--cyan-bluish-gray) !important;.has-white-colorcolor: var(--wp--preset--color--white) !important;.has-pale-pink-colorcolor: var(--wp--preset--color--pale-pink) !important;.has-vivid-red-colorcolor: var(--wp--preset--color--vivid-red) !important;.has-luminous-vivid-orange-colorcolor: var(--wp--preset--color--luminous-vivid-orange) !important;.has-luminous-vivid-amber-colorcolor: var(--wp--preset--color--luminous-vivid-amber) !important;.has-light-green-cyan-colorcolor: var(--wp--preset--color--light-green-cyan) !important;.has-vivid-green-cyan-colorcolor: var(--wp--preset--color--vivid-green-cyan) !important;.has-pale-cyan-blue-colorcolor: var(--wp--preset--color--pale-cyan-blue) !important;.has-vivid-cyan-blue-colorcolor: var(--wp--preset--color--vivid-cyan-blue) !important;.has-vivid-purple-colorcolor: var(--wp--preset--color--vivid-purple) !important;.has-black-background-colorbackground-color: var(--wp--preset--color--black) !important;.has-cyan-bluish-gray-background-colorbackground-color: var(--wp--preset--color--cyan-bluish-gray) !important;.has-white-background-colorbackground-color: var(--wp--preset--color--white) !important;.has-pale-pink-background-colorbackground-color: var(--wp--preset--color--pale-pink) !important;.has-vivid-red-background-colorbackground-color: var(--wp--preset--color--vivid-red) !important;.has-luminous-vivid-orange-background-colorbackground-color: var(--wp--preset--color--luminous-vivid-orange) !important;.has-luminous-vivid-amber-background-colorbackground-color: var(--wp--preset--color--luminous-vivid-amber) !important;.has-light-green-cyan-background-colorbackground-color: var(--wp--preset--color--light-green-cyan) !important;.has-vivid-green-cyan-background-colorbackground-color: var(--wp--preset--color--vivid-green-cyan) !important;.has-pale-cyan-blue-background-colorbackground-color: var(--wp--preset--color--pale-cyan-blue) !important;.has-vivid-cyan-blue-background-colorbackground-color: var(--wp--preset--color--vivid-cyan-blue) !important;.has-vivid-purple-background-colorbackground-color: var(--wp--preset--color--vivid-purple) !important;.has-black-border-colorborder-color: var(--wp--preset--color--black) !important;.has-cyan-bluish-gray-border-colorborder-color: var(--wp--preset--color--cyan-bluish-gray) !important;.has-white-border-colorborder-color: var(--wp--preset--color--white) !important;.has-pale-pink-border-colorborder-color: var(--wp--preset--color--pale-pink) !important;.has-vivid-red-border-colorborder-color: var(--wp--preset--color--vivid-red) !important;.has-luminous-vivid-orange-border-colorborder-color: var(--wp--preset--color--luminous-vivid-orange) !important;.has-luminous-vivid-amber-border-colorborder-color: var(--wp--preset--color--luminous-vivid-amber) !important;.has-light-green-cyan-border-colorborder-color: var(--wp--preset--color--light-green-cyan) !important;.has-vivid-green-cyan-border-colorborder-color: var(--wp--preset--color--vivid-green-cyan) !important;.has-pale-cyan-blue-border-colorborder-color: var(--wp--preset--color--pale-cyan-blue) !important;.has-vivid-cyan-blue-border-colorborder-color: var(--wp--preset--color--vivid-cyan-blue) !important;.has-vivid-purple-border-colorborder-color: var(--wp--preset--color--vivid-purple) !important;.has-vivid-cyan-blue-to-vivid-purple-gradient-backgroundbackground: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;.has-light-green-cyan-to-vivid-green-cyan-gradient-backgroundbackground: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-backgroundbackground: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;.has-luminous-vivid-orange-to-vivid-red-gradient-backgroundbackground: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;.has-very-light-gray-to-cyan-bluish-gray-gradient-backgroundbackground: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;.has-cool-to-warm-spectrum-gradient-backgroundbackground: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;.has-blush-light-purple-gradient-backgroundbackground: var(--wp--preset--gradient--blush-light-purple) !important;.has-blush-bordeaux-gradient-backgroundbackground: var(--wp--preset--gradient--blush-bordeaux) !important;.has-luminous-dusk-gradient-backgroundbackground: var(--wp--preset--gradient--luminous-dusk) !important;.has-pale-ocean-gradient-backgroundbackground: var(--wp--preset--gradient--pale-ocean) !important;.has-electric-grass-gradient-backgroundbackground: var(--wp--preset--gradient--electric-grass) !important;.has-midnight-gradient-backgroundbackground: var(--wp--preset--gradient--midnight) !important;.has-small-font-sizefont-size: var(--wp--preset--font-size--small) !important;.has-medium-font-sizefont-size: var(--wp--preset--font-size--medium) !important;.has-large-font-sizefont-size: var(--wp--preset--font-size--large) !important;.has-x-large-font-sizefont-size: var(--wp--preset--font-size--x-large) !important;.wp-block-navigation a:where(:not(.wp-element-button))color: inherit;:where(.wp-block-columns.is-layout-flex)gap: 2em;.wp-block-pullquotefont-size: 1.5em;line-height: 1.6;/* Kadence Base CSS */:root--global-palette1:#3182CE;--global-palette2:#2B6CB0;--global-palette3:#1A202C;--global-palette4:#2D3748;--global-palette5:#4A5568;--global-palette6:#718096;--global-palette7:#EDF2F7;--global-palette8:#F7FAFC;--global-palette9:#FFFFFF;--global-palette9rgb:255, 255, 255;--global-palette-highlight:#0556f3;--global-palette-highlight-alt:#0556f3;--global-palette-highlight-alt2:var(--global-palette9);--global-palette-btn-bg:var(--global-palette1);--global-palette-btn-bg-hover:var(--global-palette1);--global-palette-btn:var(--global-palette9);--global-palette-btn-hover:var(--global-palette9);--global-body-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--global-heading-font-family:'Source Sans Pro', sans-serif;--global-primary-nav-font-family:inherit;--global-fallback-font:sans-serif;--global-display-fallback-font:sans-serif;--global-content-width:1290px;--global-content-narrow-width:842px;--global-content-edge-padding:1.5rem;--global-calc-content-width:calc(1290px - var(--global-content-edge-padding) - var(--global-content-edge-padding) );.wp-site-blocks--global-vw:calc( 100vw - ( 0.5 * var(--scrollbar-offset)));:root .has-theme-palette-1-background-colorbackground-color:var(--global-palette1);:root .has-theme-palette-1-colorcolor:var(--global-palette1);:root .has-theme-palette-2-background-colorbackground-color:var(--global-palette2);:root .has-theme-palette-2-colorcolor:var(--global-palette2);:root .has-theme-palette-3-background-colorbackground-color:var(--global-palette3);:root .has-theme-palette-3-colorcolor:var(--global-palette3);:root .has-theme-palette-4-background-colorbackground-color:var(--global-palette4);:root .has-theme-palette-4-colorcolor:var(--global-palette4);:root .has-theme-palette-5-background-colorbackground-color:var(--global-palette5);:root .has-theme-palette-5-colorcolor:var(--global-palette5);:root .has-theme-palette-6-background-colorbackground-color:var(--global-palette6);:root .has-theme-palette-6-colorcolor:var(--global-palette6);:root .has-theme-palette-7-background-colorbackground-color:var(--global-palette7);:root .has-theme-palette-7-colorcolor:var(--global-palette7);:root .has-theme-palette-8-background-colorbackground-color:var(--global-palette8);:root .has-theme-palette-8-colorcolor:var(--global-palette8);:root .has-theme-palette-9-background-colorbackground-color:var(--global-palette9);:root .has-theme-palette-9-colorcolor:var(--global-palette9);:root .has-theme-palette1-background-colorbackground-color:var(--global-palette1);:root .has-theme-palette1-colorcolor:var(--global-palette1);:root .has-theme-palette2-background-colorbackground-color:var(--global-palette2);:root .has-theme-palette2-colorcolor:var(--global-palette2);:root .has-theme-palette3-background-colorbackground-color:var(--global-palette3);:root .has-theme-palette3-colorcolor:var(--global-palette3);:root .has-theme-palette4-background-colorbackground-color:var(--global-palette4);:root .has-theme-palette4-colorcolor:var(--global-palette4);:root .has-theme-palette5-background-colorbackground-color:var(--global-palette5);:root .has-theme-palette5-colorcolor:var(--global-palette5);:root .has-theme-palette6-background-colorbackground-color:var(--global-palette6);:root .has-theme-palette6-colorcolor:var(--global-palette6);:root .has-theme-palette7-background-colorbackground-color:var(--global-palette7);:root .has-theme-palette7-colorcolor:var(--global-palette7);:root .has-theme-palette8-background-colorbackground-color:var(--global-palette8);:root .has-theme-palette8-colorcolor:var(--global-palette8);:root .has-theme-palette9-background-colorbackground-color:var(--global-palette9);:root .has-theme-palette9-colorcolor:var(--global-palette9);bodybackground:var(--global-palette9);body, input, select, optgroup, textareafont-style:normal;font-weight:400;font-size:18px;line-height:27px;font-family:var(--global-body-font-family);color:#222222;.content-bg, body.content-style-unboxed .sitebackground:var(--global-palette9);h1,h2,h3,h4,h5,h6font-family:var(--global-heading-font-family);h1font-style:normal;font-weight:normal;font-size:31px;line-height:34px;font-family:'Source Sans Pro', sans-serif;color:#222222;h2font-style:normal;font-weight:normal;font-size:26px;line-height:40px;font-family:'Source Sans Pro', sans-serif;color:#222222;h3font-style:normal;font-weight:normal;font-size:22px;line-height:25px;font-family:'Source Sans Pro', sans-serif;color:#222222;h4font-style:normal;font-weight:normal;font-size:20px;line-height:21px;font-family:'Source Sans Pro', sans-serif;color:#222222;h5font-style:normal;font-weight:normal;font-size:19px;line-height:20px;font-family:'Source Sans Pro', sans-serif;color:#222222;h6font-style:normal;font-weight:normal;font-size:18px;line-height:1.5;font-family:'Source Sans Pro', sans-serif;color:#222222;.entry-hero h1font-style:normal;font-weight:normal;font-size:31px;line-height:34px;font-family:'Source Sans Pro', sans-serif;color:#222222;.entry-hero .kadence-breadcrumbs, .entry-hero .search-formfont-style:normal;.entry-hero .kadence-breadcrumbsmax-width:1290px;.site-container, .site-header-row-layout-contained, .site-footer-row-layout-contained, .entry-hero-layout-contained, .comments-area, .alignfull > .wp-block-cover__inner-container, .alignwide > .wp-block-cover__inner-containermax-width:var(--global-content-width);.content-width-narrow .content-container.site-container, .content-width-narrow .hero-container.site-containermax-width:var(--global-content-narrow-width);@media all and (min-width: 1520px).wp-site-blocks .content-container .alignwidemargin-left:-115px;margin-right:-115px;width:unset;max-width:unset;@media all and (min-width: 1102px).content-width-narrow .wp-site-blocks .content-container .alignwidemargin-left:-130px;margin-right:-130px;width:unset;max-width:unset;.content-style-boxed .wp-site-blocks .entry-content .alignwidemargin-left:-2rem;margin-right:-2rem;@media all and (max-width: 1024px).content-style-boxed .wp-site-blocks .entry-content .alignwidemargin-left:-2rem;margin-right:-2rem;@media all and (max-width: 767px).content-style-boxed .wp-site-blocks .entry-content .alignwidemargin-left:-1.5rem;margin-right:-1.5rem;.content-areamargin-top:5rem;margin-bottom:5rem;@media all and (max-width: 1024px).content-areamargin-top:3rem;margin-bottom:3rem;@media all and (max-width: 767px).content-areamargin-top:2rem;margin-bottom:2rem;.entry-content-wrappadding:2rem;@media all and (max-width: 1024px).entry-content-wrappadding:2rem;@media all and (max-width: 767px).entry-content-wrappadding:1.5rem;.entry.single-entrybox-shadow:0px 15px 15px -10px rgba(0,0,0,0.05);.entry.loop-entrybox-shadow:0px 15px 15px -10px rgba(0,0,0,0.05);.loop-entry .entry-content-wrappadding:2rem;@media all and (max-width: 1024px).loop-entry .entry-content-wrappadding:2rem;@media all and (max-width: 767px).loop-entry .entry-content-wrappadding:1.5rem;.primary-sidebar.widget-area .widgetmargin-bottom:1.5em;color:var(--global-palette4);.primary-sidebar.widget-area .widget-titlefont-style:normal;font-weight:normal;font-size:20px;line-height:1.5;color:var(--global-palette3);.primary-sidebar.widget-area .sidebar-inner-wrap a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button)):hovercolor:#ec4747;.primary-sidebar.widget-areabackground:var(--global-palette9);.has-sidebar.has-left-sidebar .primary-sidebar.widget-areaborder-right:1px solid #e1e1e1;.has-sidebar:not(.has-left-sidebar) .primary-sidebar.widget-areaborder-left:1px solid #e1e1e1;button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"], .fl-button, .elementor-button-wrapper .elementor-buttonbox-shadow:0px 0px 0px -7px rgba(0,0,0,0);button:hover, button:focus, button:active, .button:hover, .button:focus, .button:active, .wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active, input[type="button"]:hover, input[type="button"]:focus, input[type="button"]:active, input[type="reset"]:hover, input[type="reset"]:focus, input[type="reset"]:active, input[type="submit"]:hover, input[type="submit"]:focus, input[type="submit"]:active, .elementor-button-wrapper .elementor-button:hover, .elementor-button-wrapper .elementor-button:focus, .elementor-button-wrapper .elementor-button:activebox-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);@media all and (min-width: 1025px).transparent-header .entry-hero .entry-hero-container-innerpadding-top:49px;@media all and (max-width: 1024px).mobile-transparent-header .entry-hero .entry-hero-container-innerpadding-top:49px;@media all and (max-width: 767px).mobile-transparent-header .entry-hero .entry-hero-container-innerpadding-top:49px;.wp-site-blocks .entry-hero-container-innerbackground:var(--global-palette9);#colophonbackground:#323a56;.site-middle-footer-wrap .site-footer-row-container-innerbackground:#323a56;font-style:normal;.site-footer .site-middle-footer-wrap a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button))color:var(--global-palette1);.site-footer .site-middle-footer-wrap a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button)):hovercolor:var(--global-palette1);.site-middle-footer-inner-wrappadding-top:0px;padding-bottom:30px;grid-column-gap:0px;grid-row-gap:0px;.site-middle-footer-inner-wrap .widgetmargin-bottom:30px;.site-middle-footer-inner-wrap .widget-area .widget-titlefont-style:normal;font-weight:400;.site-middle-footer-inner-wrap .site-footer-section:not(:last-child):afterright:calc(-0px / 2);.site-top-footer-wrap .site-footer-row-container-innerbackground:#323a56;font-style:normal;color:var(--global-palette4);border-bottom:0px none transparent;.site-footer .site-top-footer-wrap a:not(.button):not(.wp-block-button__link):not(.wp-element-button)color:var(--global-palette1);.site-top-footer-inner-wrappadding-top:0px;padding-bottom:0px;grid-column-gap:0px;grid-row-gap:0px;.site-top-footer-inner-wrap .widgetmargin-bottom:30px;.site-top-footer-inner-wrap .site-footer-section:not(:last-child):afterborder-right:0px none transparent;right:calc(-0px / 2);@media all and (max-width: 767px).site-top-footer-wrap .site-footer-row-container-innerborder-bottom:1px none #323a56;.site-top-footer-inner-wrap .site-footer-section:not(:last-child):afterborder-right:0px none transparent;.site-bottom-footer-wrap .site-footer-row-container-innerbackground:var(--global-palette9);.site-bottom-footer-inner-wrappadding-top:30px;padding-bottom:30px;grid-column-gap:30px;.site-bottom-footer-inner-wrap .widgetmargin-bottom:30px;.site-bottom-footer-inner-wrap .site-footer-section:not(:last-child):afterright:calc(-30px / 2);.footer-social-wrapmargin:0px 0px 0px 0px;.footer-social-wrap .footer-social-inner-wrapfont-size:1.28em;gap:0.3em;.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-buttoncolor:var(--global-palette9);border:2px none transparent;border-color:var(--global-palette9);border-radius:3px;.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button:hovercolor:var(--global-palette9);border-color:var(--global-palette9);#colophon .footer-htmlfont-style:normal;color:var(--global-palette9);#colophon .site-footer-row-container .site-footer-row .footer-html acolor:var(--global-palette9);#kt-scroll-up-reader, #kt-scroll-upborder-radius:0px 0px 0px 0px;color:var(--global-palette3);border-color:var(--global-palette4);bottom:30px;font-size:1.2em;padding:0.4em 0.4em 0.4em 0.4em;#kt-scroll-up-reader.scroll-up-side-right, #kt-scroll-up.scroll-up-side-rightright:30px;#kt-scroll-up-reader.scroll-up-side-left, #kt-scroll-up.scroll-up-side-leftleft:30px;#kt-scroll-up-reader:hover, #kt-scroll-up:hovercolor:var(--global-palette2);border-color:var(--global-palette2);#colophon .footer-navigation .footer-menu-container > ul > li > apadding-left:calc(1.2em / 2);padding-right:calc(1.2em / 2);color:var(--global-palette5);#colophon .footer-navigation .footer-menu-container > ul li a:hovercolor:var(--global-palette-highlight);#colophon .footer-navigation .footer-menu-container > ul li.current-menu-item > acolor:var(--global-palette3);body.pagebackground:var(--global-palette9);.entry-hero.page-hero-section .entry-headermin-height:200px;.comment-metadata a:not(.comment-edit-link), .comment-body .edit-link:beforedisplay:none;.entry-hero.post-hero-section .entry-headermin-height:200px;/* Kadence Header CSS */@media all and (max-width: 1024px).mobile-transparent-header #mastheadposition:absolute;left:0px;right:0px;z-index:100;.kadence-scrollbar-fixer.mobile-transparent-header #mastheadright:var(--scrollbar-offset,0);.mobile-transparent-header #masthead, .mobile-transparent-header .site-top-header-wrap .site-header-row-container-inner, .mobile-transparent-header .site-main-header-wrap .site-header-row-container-inner, .mobile-transparent-header .site-bottom-header-wrap .site-header-row-container-innerbackground:transparent;.site-header-row-tablet-layout-fullwidth, .site-header-row-tablet-layout-standardpadding:0px;@media all and (min-width: 1025px).transparent-header #mastheadposition:absolute;left:0px;right:0px;z-index:100;.transparent-header.kadence-scrollbar-fixer #mastheadright:var(--scrollbar-offset,0);.transparent-header #masthead, .transparent-header .site-top-header-wrap .site-header-row-container-inner, .transparent-header .site-main-header-wrap .site-header-row-container-inner, .transparent-header .site-bottom-header-wrap .site-header-row-container-innerbackground:transparent;.site-branding a.brand imgmax-width:135px;.site-branding a.brand img.svg-logo-imagewidth:135px;.site-brandingpadding:0px 0px 0px 0px;#masthead, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start):not(.site-header-row-container), #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-innerbackground:#ffffff;.site-main-header-wrap .site-header-row-container-innerborder-bottom:1px solid #cccccc;.site-main-header-inner-wrapmin-height:49px;.site-top-header-wrap .site-header-row-container-innerbackground:var(--global-palette1);.site-top-header-inner-wrapmin-height:0px;.site-bottom-header-inner-wrapmin-height:0px;#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start):not(.site-header-row-container):not(.item-hidden-above), #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start):not(.item-hidden-above) > .site-header-row-container-innerbackground:var(--global-palette9);#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-branding .site-title, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-branding .site-descriptioncolor:var(--global-palette3);.header-navigation[class*="header-navigation-style-underline"] .header-menu-container.primary-menu-container>ul>li>a:afterwidth:calc( 100% - 2em);.main-navigation .primary-menu-container > ul > li.menu-item > apadding-left:calc(2em / 2);padding-right:calc(2em / 2);padding-top:0em;padding-bottom:0em;color:#4a5568;.main-navigation .primary-menu-container > ul > li.menu-item > .dropdown-nav-special-toggleright:calc(2em / 2);.main-navigation .primary-menu-container > ul > li.menu-item > a:hovercolor:#000000;.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > acolor:#1a202c;.header-navigation[class*="header-navigation-style-underline"] .header-menu-container.secondary-menu-container>ul>li>a:afterwidth:calc( 100% - 1.2em);.secondary-navigation .secondary-menu-container > ul > li.menu-item > apadding-left:calc(1.2em / 2);padding-right:calc(1.2em / 2);padding-top:0.6em;padding-bottom:0.6em;color:var(--global-palette9);background:var(--global-palette9);.secondary-navigation .primary-menu-container > ul > li.menu-item > .dropdown-nav-special-toggleright:calc(1.2em / 2);.secondary-navigation .secondary-menu-container > ul > li.menu-item > a:hovercolor:#323a56;background:#323a56;.secondary-navigation .secondary-menu-container > ul > li.menu-item.current-menu-item > acolor:#323a56;background:#323a56;.header-navigation .header-menu-container ul ul.sub-menu, .header-navigation .header-menu-container ul ul.submenubackground:#1a202c;box-shadow:0px 2px 13px 0px rgba(0,0,0,0.1);.header-navigation .header-menu-container ul ul li.menu-item, .header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li.menu-item > aborder-bottom:1px none rgba(255,255,255,0.1);.header-navigation .header-menu-container ul ul li.menu-item > awidth:100px;padding-top:4px;padding-bottom:4px;color:var(--global-palette8);font-style:normal;font-size:15px;.header-navigation .header-menu-container ul ul li.menu-item > a:hovercolor:var(--global-palette9);background:#323a56;.header-navigation .header-menu-container ul ul li.menu-item.current-menu-item > acolor:var(--global-palette9);background:#2d3748;.mobile-toggle-open-container .menu-toggle-opencolor:var(--global-palette3);padding:0.4em 0.6em 0.4em 0.6em;font-size:14px;.mobile-toggle-open-container .menu-toggle-open.menu-toggle-style-borderedborder:1px solid currentColor;.mobile-toggle-open-container .menu-toggle-open .menu-toggle-iconfont-size:29px;.mobile-toggle-open-container .menu-toggle-open:hover, .mobile-toggle-open-container .menu-toggle-open:focuscolor:#087deb;.mobile-navigation ul lifont-size:14px;.mobile-navigation ul li apadding-top:1em;padding-bottom:1em;.mobile-navigation ul li > a, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrapcolor:#f7fafc;.mobile-navigation ul li > a:hover, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap:hovercolor:var(--global-palette9);.mobile-navigation ul li.current-menu-item > a, .mobile-navigation ul li.current-menu-item.menu-item-has-children > .drawer-nav-drop-wrapcolor:var(--global-palette9);.mobile-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap, .mobile-navigation ul li:not(.menu-item-has-children) aborder-bottom:1px solid rgba(255,255,255,0.1);.mobile-navigation:not(.drawer-navigation-parent-toggle-true) ul li.menu-item-has-children .drawer-nav-drop-wrap buttonborder-left:1px solid rgba(255,255,255,0.1);#mobile-drawer .drawer-inner, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice .pop-portion-bg, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice.pop-animated.show-drawer .drawer-innerbackground:#323a56;#mobile-drawer .drawer-header .drawer-togglepadding:0.6em 0.15em 0.6em 0.15em;font-size:24px;#mobile-drawer .drawer-header .drawer-toggle, #mobile-drawer .drawer-header .drawer-toggle:focuscolor:var(--global-palette9);#mobile-drawer .drawer-header .drawer-toggle:hover, #mobile-drawer .drawer-header .drawer-toggle:focus:hovercolor:#0887fc;#main-header .header-buttoncolor:var(--global-palette9);background:var(--global-palette9);border:2px none transparent;box-shadow:0px 0px 0px -7px rgba(0,0,0,0);#main-header .header-button:hovercolor:#323a56;background:#323a56;box-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);.header-social-wrap .header-social-inner-wrapfont-size:1em;gap:0.3em;.header-social-wrap .header-social-inner-wrap .social-buttonborder:2px none transparent;border-radius:3px;.header-mobile-social-wrap .header-mobile-social-inner-wrapfont-size:1em;gap:0.3em;.header-mobile-social-wrap .header-mobile-social-inner-wrap .social-buttonborder:2px none transparent;border-radius:3px;.search-toggle-open-container .search-toggle-opencolor:var(--global-palette5);.search-toggle-open-container .search-toggle-open.search-toggle-style-borderedborder:1px solid currentColor;.search-toggle-open-container .search-toggle-open .search-toggle-iconfont-size:1em;.search-toggle-open-container .search-toggle-open:hover, .search-toggle-open-container .search-toggle-open:focuscolor:var(--global-palette-highlight);#search-drawer .drawer-innerbackground:rgba(9, 12, 16, 0.97);.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-buttonborder:2px none transparent;box-shadow:0px 0px 0px -7px rgba(0,0,0,0);.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button:hoverbox-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);/* Kadence Pro Header CSS */.header-navigation-dropdown-direction-left ul ul.submenu, .header-navigation-dropdown-direction-left ul ul.sub-menuright:0px;left:auto;.rtl .header-navigation-dropdown-direction-right ul ul.submenu, .rtl .header-navigation-dropdown-direction-right ul ul.sub-menuleft:0px;right:auto;.header-account-button .nav-drop-title-wrap > .kadence-svg-iconset, .header-account-button > .kadence-svg-iconsetfont-size:1.2em;.site-header-item .header-account-button .nav-drop-title-wrap, .site-header-item .header-account-wrap > .header-account-buttondisplay:flex;align-items:center;.header-account-style-icon_label .header-account-labelpadding-left:5px;.header-account-style-label_icon .header-account-labelpadding-right:5px;.site-header-item .header-account-wrap .header-account-buttontext-decoration:none;box-shadow:none;color:inherit;background:transparent;padding:0.6em 0em 0.6em 0em;.header-mobile-account-wrap .header-account-button .nav-drop-title-wrap > .kadence-svg-iconset, .header-mobile-account-wrap .header-account-button > .kadence-svg-iconsetfont-size:1.2em;.header-mobile-account-wrap .header-account-button .nav-drop-title-wrap, .header-mobile-account-wrap > .header-account-buttondisplay:flex;align-items:center;.header-mobile-account-wrap.header-account-style-icon_label .header-account-labelpadding-left:5px;.header-mobile-account-wrap.header-account-style-label_icon .header-account-labelpadding-right:5px;.header-mobile-account-wrap .header-account-buttontext-decoration:none;box-shadow:none;color:inherit;background:transparent;padding:0.6em 0em 0.6em 0em;#login-drawer .drawer-inner .drawer-contentdisplay:flex;justify-content:center;align-items:center;position:absolute;top:0px;bottom:0px;left:0px;right:0px;padding:0px;#loginform p labeldisplay:block;#login-drawer #loginformwidth:100%;#login-drawer #loginform inputwidth:100%;#login-drawer #loginform input[type="checkbox"]width:auto;#login-drawer .drawer-inner .drawer-headerposition:relative;z-index:100;#login-drawer .drawer-content_inner.widget_login_form_innerpadding:2em;width:100%;max-width:350px;border-radius:.25rem;background:var(--global-palette9);color:var(--global-palette4);#login-drawer .lost_password acolor:var(--global-palette6);#login-drawer .lost_password, #login-drawer .register-fieldtext-align:center;#login-drawer .widget_login_form_inner pmargin-top:1.2em;margin-bottom:0em;#login-drawer .widget_login_form_inner p:first-childmargin-top:0em;#login-drawer .widget_login_form_inner labelmargin-bottom:0.5em;#login-drawer hr.register-dividermargin:1.2em 0;border-width:1px;#login-drawer .register-fieldfont-size:90%;.tertiary-navigation .tertiary-menu-container > ul > li.menu-item > apadding-left:calc(1.2em / 2);padding-right:calc(1.2em / 2);padding-top:0.6em;padding-bottom:0.6em;color:var(--global-palette5);.tertiary-navigation .tertiary-menu-container > ul > li.menu-item > a:hovercolor:var(--global-palette-highlight);.tertiary-navigation .tertiary-menu-container > ul > li.menu-item.current-menu-item > acolor:var(--global-palette3);.quaternary-navigation .quaternary-menu-container > ul > li.menu-item > apadding-left:calc(1.2em / 2);padding-right:calc(1.2em / 2);padding-top:0.6em;padding-bottom:0.6em;color:var(--global-palette5);.quaternary-navigation .quaternary-menu-container > ul > li.menu-item > a:hovercolor:var(--global-palette-highlight);.quaternary-navigation .quaternary-menu-container > ul > li.menu-item.current-menu-item > acolor:var(--global-palette3);#main-header .header-dividerborder-right:1px solid var(--global-palette6);height:50%;#main-header .header-divider2border-right:1px solid var(--global-palette6);height:50%;#main-header .header-divider3border-right:1px solid var(--global-palette6);height:50%;#mobile-header .header-mobile-dividerborder-right:1px solid var(--global-palette6);height:50%;#mobile-header .header-mobile-divider2border-right:1px solid var(--global-palette6);height:50%;.header-item-search-bar form ::-webkit-input-placeholdercolor:currentColor;opacity:0.5;.header-item-search-bar form ::placeholdercolor:currentColor;opacity:0.5;.header-search-bar formmax-width:100%;width:240px;.header-mobile-search-bar formmax-width:calc(100vw - var(--global-sm-spacing) - var(--global-sm-spacing));width:240px;.header-widget-lstyle-normal .header-widget-area-inner a:not(.button)text-decoration:underline;.element-contact-inner-wrapdisplay:flex;flex-wrap:wrap;align-items:center;margin-top:-0.6em;margin-left:calc(-0.6em / 2);margin-right:calc(-0.6em / 2);.element-contact-inner-wrap .header-contact-itemdisplay:inline-flex;flex-wrap:wrap;align-items:center;margin-top:0.6em;margin-left:calc(0.6em / 2);margin-right:calc(0.6em / 2);.element-contact-inner-wrap .header-contact-item .kadence-svg-iconsetfont-size:1em;.header-contact-item imgdisplay:inline-block;.header-contact-item .contact-labelmargin-left:0.3em;.rtl .header-contact-item .contact-labelmargin-right:0.3em;margin-left:0px;.header-mobile-contact-wrap .element-contact-inner-wrapdisplay:flex;flex-wrap:wrap;align-items:center;margin-top:-0.6em;margin-left:calc(-0.6em / 2);margin-right:calc(-0.6em / 2);.header-mobile-contact-wrap .element-contact-inner-wrap .header-contact-itemdisplay:inline-flex;flex-wrap:wrap;align-items:center;margin-top:0.6em;margin-left:calc(0.6em / 2);margin-right:calc(0.6em / 2);.header-mobile-contact-wrap .element-contact-inner-wrap .header-contact-item .kadence-svg-iconsetfont-size:1em;#main-header .header-button2border:2px none transparent;box-shadow:0px 0px 0px -7px rgba(0,0,0,0);#main-header .header-button2:hoverbox-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);.mobile-header-button2-wrap .mobile-header-button-inner-wrap .mobile-header-button2border:2px none transparent;box-shadow:0px 0px 0px -7px rgba(0,0,0,0);.mobile-header-button2-wrap .mobile-header-button-inner-wrap .mobile-header-button2:hoverbox-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);#widget-drawer.popup-drawer-layout-fullwidth .drawer-content .header-widget2, #widget-drawer.popup-drawer-layout-sidepanel .drawer-innermax-width:400px;#widget-drawer.popup-drawer-layout-fullwidth .drawer-content .header-widget2margin:0 auto;.widget-toggle-opendisplay:flex;align-items:center;background:transparent;box-shadow:none;.widget-toggle-open:hover, .widget-toggle-open:focusborder-color:currentColor;background:transparent;box-shadow:none;.widget-toggle-open .widget-toggle-icondisplay:flex;.widget-toggle-open .widget-toggle-labelpadding-right:5px;.rtl .widget-toggle-open .widget-toggle-labelpadding-left:5px;padding-right:0px;.widget-toggle-open .widget-toggle-label:empty, .rtl .widget-toggle-open .widget-toggle-label:emptypadding-right:0px;padding-left:0px;.widget-toggle-open-container .widget-toggle-opencolor:var(--global-palette5);padding:0.4em 0.6em 0.4em 0.6em;font-size:14px;.widget-toggle-open-container .widget-toggle-open.widget-toggle-style-borderedborder:1px solid currentColor;.widget-toggle-open-container .widget-toggle-open .widget-toggle-iconfont-size:20px;.widget-toggle-open-container .widget-toggle-open:hover, .widget-toggle-open-container .widget-toggle-open:focuscolor:var(--global-palette-highlight);#widget-drawer .header-widget-2style-normal a:not(.button)text-decoration:underline;#widget-drawer .header-widget-2style-plain a:not(.button)text-decoration:none;#widget-drawer .header-widget2 .widget-titlecolor:var(--global-palette9);#widget-drawer .header-widget2color:var(--global-palette8);#widget-drawer .header-widget2 a:not(.button), #widget-drawer .header-widget2 .drawer-sub-togglecolor:var(--global-palette8);#widget-drawer .header-widget2 a:not(.button):hover, #widget-drawer .header-widget2 .drawer-sub-toggle:hovercolor:var(--global-palette9);#mobile-secondary-site-navigation ul lifont-size:14px;#mobile-secondary-site-navigation ul li apadding-top:1em;padding-bottom:1em;#mobile-secondary-site-navigation ul li > a, #mobile-secondary-site-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrapcolor:var(--global-palette8);#mobile-secondary-site-navigation ul li.current-menu-item > a, #mobile-secondary-site-navigation ul li.current-menu-item.menu-item-has-children > .drawer-nav-drop-wrapcolor:var(--global-palette-highlight);#mobile-secondary-site-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap, #mobile-secondary-site-navigation ul li:not(.menu-item-has-children) aborder-bottom:1px solid rgba(255,255,255,0.1);#mobile-secondary-site-navigation:not(.drawer-navigation-parent-toggle-true) ul li.menu-item-has-children .drawer-nav-drop-wrap buttonborder-left:1px solid rgba(255,255,255,0.1);:root--lasso-main: #5e36ca !important;--lasso-title: black !important;--lasso-button: #22baa0 !important;--lasso-secondary-button: #22baa0 !important;--lasso-button-text: white !important;--lasso-background: white !important;--lasso-pros: #22baa0 !important;--lasso-cons: #e06470 !important;// Notice how this gets configured before we load Font Awesomewindow.FontAwesomeConfig = autoReplaceSvg: false var googletag=window.googletagcmd:[];var gptadslots=[];var googletag=googletagcmd:[]; //load the apstag.js library!function(a9,a,p,s,t,A,g)if(a[a9])return;function q(c,r)a[a9]._Q.push([c,r])a[a9]=init:function()q("i",arguments),fetchBids:function()q("f",arguments),setDisplayBids:function(),targetingKeys:function()return[],_Q:[];A=p.createElement(s);A.async=!0;A.src=t;g=p.getElementsByTagName(s)[0];g.parentNode.insertBefore(A,g)("apstag",window,document,"script","//c.amazon-adsystem.com/aax2/apstag.js");//initialize the apstag.js library on the page to allow biddingapstag.init( pubID: '0b8b4efb-a0ed-455f-9ba8-517e0c56bb55', //enter your pub ID here as shown above, it must within quotes adServer: 'googletag', simplerGPT: true); googletag.cmd.push(function() var mapping1 = googletag.sizeMapping() .addSize([1700, 400], ['fluid',[970, 90], [970, 250],[728, 90],[468, 60],[300, 250],[336, 280],[250, 250]]) .addSize([1024, 0], [[728, 90],[468, 60],[250, 250],[336, 280],[300, 250],[234, 60]]) .addSize([500, 0], [[468, 60],[250, 250],[300, 250],[336, 280],[320, 480],[200, 200]]) .addSize([0, 0], [[320, 50], [300, 250],[300, 50],[320, 100],[250, 250],[200,200]]) .build(); var mapping2 = googletag.sizeMapping() .addSize([1024, 0], ['fluid',[336, 280],[300, 250], [250, 250]]) .addSize([500, 0], [[300, 250], [336, 280], [250, 250]]) .addSize([0, 0], []) .build(); var mapping3 = googletag.sizeMapping() .addSize([1024, 0], [[300, 600], [120, 600], [160, 600],[300, 250],[336, 280],[250, 250],[300, 340],[320, 480]]) .addSize([766, 0], [[160, 600], [120, 600],[250, 250]]) .addSize([0, 0], []) .build(); var mapping4 = googletag.sizeMapping() .addSize([1024, 0], []) .addSize([0, 0], [[320, 50],[300, 50],[360, 50],[400, 50]]) .build(); var mapping5 = googletag.sizeMapping() .addSize([1700, 400], ['fluid',[970, 90], [970, 250],[728, 90],[468, 60]]) .addSize([1024, 0], [[728, 90],[468, 60],[234, 60]]) .addSize([500, 0], [[468, 60],[234, 60]]) .addSize([0, 0], [[300, 250],[336, 280],[250, 250]]) .build(); var mapping6 = googletag.sizeMapping() .addSize([1024, 0], ['fluid',[336, 280],[300, 250], [250, 250]]) .addSize([766, 0], [[300, 250], [336, 280], [250, 250]]) .addSize([0, 0], []) .build(); var mapping7 = googletag.sizeMapping() .addSize([1024, 0], []) .addSize([500, 0], []) .addSize([0, 0], [[320, 50],[300, 50],[320, 100],[200, 200],[234, 60]]) .build(); gptadslots['div-gpt-ad-9092914-1'] = googletag.defineSlot('/24132379/guru99.com_728x90', 'fluid', 'div-gpt-ad-9092914-1') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['top']) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping5) .addService(googletag.pubads()); gptadslots['div-gpt-ad-9092914-2'] = googletag.defineSlot('/24132379/guru99.com_728x90', 'fluid', 'div-gpt-ad-9092914-2') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['middle']) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping1) .addService(googletag.pubads()); gptadslots['div-gpt-ad-9092914-6'] = googletag.defineSlot('/24132379/guru99.com_728x90', 'fluid', 'div-gpt-ad-9092914-6') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['bottom']) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping1) .addService(googletag.pubads()); gptadslots['div-gpt-ad-1543194583199-0'] = googletag.defineSlot('/24132379/guru99.com_300x600_sticky', [[300, 600], [120, 600], [160, 600], [300, 250], [336, 280], [250, 250], [300, 340], [320, 480]], 'div-gpt-ad-1543194583199-0') // .setTargeting(REFRESH_KEY, REFRESH_VALUE) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping3) .addService(googletag.pubads()); gptadslots['div-gpt-ad-1565016699961-0'] = googletag.defineSlot('/24132379/guru99.com_300x250_2', 'fluid', 'div-gpt-ad-1565016699961-0') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['300x250']) // .setTargeting(REFRESH_KEY, REFRESH_VALUE) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping2) .addService(googletag.pubads()); gptadslots['div-gpt-ad-1565016699961-1'] = googletag.defineSlot('/24132379/guru99.com_300x250_2', 'fluid', 'div-gpt-ad-1565016699961-1') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['notrefreshmobiletop']) // .setTargeting(REFRESH_KEY, REFRESH_VALUE) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping7) .addService(googletag.pubads()); gptadslots['div-gpt-ad-1571916596507-0'] = googletag.defineSlot('/24132379/guru99.com_300x250_1', [[336, 280], [300, 250], [250, 250]], 'div-gpt-ad-1571916596507-0') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['300x250']) // .setTargeting(REFRESH_KEY, REFRESH_VALUE) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping6) .addService(googletag.pubads()); gptadslots['div-gpt-ad-1571916546153-0'] = googletag.defineSlot('/24132379/guru99.com_300x250-2', [[300, 250], [336, 280], [250, 250]], 'div-gpt-ad-1571916546153-0') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['300x250']) // .setTargeting(REFRESH_KEY, REFRESH_VALUE) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping6) .addService(googletag.pubads()); gptadslots['div-gpt-ad-9092914-7'] = googletag.defineSlot('/24132379/guru99.com_728x90_near_footer', 'fluid', 'div-gpt-ad-9092914-7') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['footer']).setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping1) .addService(googletag.pubads()); gptadslots['div-gpt-ad-9092914-8'] = googletag.defineSlot('/24132379/guru99.com_728x90_Interview', 'fluid', 'div-gpt-ad-9092914-8') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['interview1']).setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping1) .addService(googletag.pubads()); gptadslots['div-gpt-ad-9092914-9'] = googletag.defineSlot('/24132379/guru99.com_728x90_Interview', 'fluid', 'div-gpt-ad-9092914-9') .setTargeting('type', ['sponsored']) .setTargeting('Position', ['interview2']).setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping1) .addService(googletag.pubads()); gptadslots['div-gpt-ad-1558594248952-0'] = googletag.defineSlot('/24132379/Guru99.com_Adhesion_320x50', [[320, 50], [300, 50], [360, 50], [400, 50]], 'div-gpt-ad-1558594248952-0') // .setTargeting(REFRESH_KEY, REFRESH_VALUE) .setTargeting('refreshtime', ['30']) .defineSizeMapping(mapping4) .addService(googletag.pubads()); apstag.fetchBids( //fetch bids timeout: 2e3 , function(bids) apstag.setDisplayBids(); // set apstag targeting on googletag ); googletag.enableServices(););body --global-body-font-family: 'Source Sans Pro', sans-serif;.content-wrap .entry img,.content-wrap .entry p img margin: 0 auto;hrborder-bottom:none;hrborder-top: 1px solid #eee;margin-top: 20px !important;.entry-content a:hover background: #ffec54;atext-decoration:none;tableborder-spacing: 0 !important;border:0;border-collapse: collapse;tdpadding: 0.5rem;thpadding: 0.5rem;border:0;text-align: left !important;.table td border: 0px; border-top: 1px solid #eee;tbody tr:nth-child(2n+1) td, tr:nth-child(2n+1) th background: #f9f9f9;.key-difference border: 1px solid #d6d6d6; background-color: #e0f1f5; padding: 0.938rem; margin-bottom: 20px;.img_caption text-align: center !important;.alert.alert-error background-color: #f6e7e7;border: 1px solid #edd1d0;border-radius: 0.1875rem;box-sizing: inherit;color: #b94a48;margin: 1.5rem 0px;margin-bottom: 1.5rem;padding: 0.938rem;text-align: center;text-shadow: none;.alert-error a color: #000; font-weight: bold; text-decoration: none;.alert.alert-success background-color: #dfeedf;border: 1px solid #c4e0c4;border-radius: 0.1875rem;box-sizing: inherit;color: #468847;list-style: outside none none;margin: 1.5rem 0px;margin-bottom: 1.5rem;padding: 0.938rem;text-align: center;text-shadow: none;.alert-success a color: #356635; font-weight: bold;.alert.alert-info background-color: #e2eff5;border: 1px solid #c7e0ec;border-radius: 0.1875rem;border-top-left-radius: 3px;border-top-right-radius: 3px;box-sizing: inherit;color: #3a87ad;list-style: outside none none;margin: 1.5rem 0px;margin-bottom: 1.5rem;padding: 0.938rem;text-shadow: none;.alert-info acolor: #2d6987; font-weight: bold;body p margin: 0 0 1.3rem 0 !important;.review-borderborder:1px solid #eee;h1 a, h2 a, h3 a, h4 a, h5 a, h6 acolor: #0556f3;.alert.alert-warning background-color: #f8f4ec;border: 1px solid #eee4d2;border-radius: 0.1875rem;box-sizing: inherit;color: #c09853;list-style: outside none none;margin: 1.5rem 0px;margin-bottom: 1.5rem;padding: 0.938rem;text-shadow: none;.alert-warning a color: #6c5328; font-weight: bold;codebackground-color: #f7f7f7;color: #9c1d3d;padding: 2px 4px;border: 1px solid rgba(0,0,0,0.1);font-size: 1rem;border-radius: 0.1875rem;.button1 background: #2f81ff; color: #fff!important; font-size: 14px; padding: 8px 13px; text-align: center; text-transform: none; white-space: nowrap;ul, ol, dl margin-top: 1.5rem !important; margin-bottom: 1.5rem !important;imgdisplay: inline-block;h1margin-top: 10px !important;h2, h3, h4, h5margin: 1.5rem 0 0.75rem 0 !important;.with-ribbon position: relative;.with-ribbon figcaption position: absolute;right: 0;top: 0;padding: 10px;display: inline-block;color: #fff;background: red;.nav-link-center order: 1;.nav-previous order: 0;.nav-next order: 2;.single-content h2:first-child margin-top: 0px !important;.single-content h3margin-top: 0px;.single-content h2margin-top: 0px !important;.entry-contentmargin-top: 0px !important;.entry-metamargin-bottom: 0px !important;.entry-headermargin-bottom: 0px !important;.tool-sticky thborder:1px solid #eee !important;background: #ffe !important;.tool-sticky tdborder: 1px solid #eee !important;.tool-sticky tbody tr:nth-child(2n+1) tdbackground: #fff;.button1 background: #2f81ff; color: #fff!important; font-size: 14px; padding: 8px 13px; text-align: center; text-transform: none; white-space: nowrap;thbackground: #f2f2f2;@media only screen and (max-width: 1023px) table display: block;overflow: scroll;overflow-x: auto;overflow-y: auto;.pagenav background: #df5035; font-size: 1rem; border-radius: 5px; border: 0px; padding: 0.8rem 1rem;color:#fff;.comment-navigation .nav-previous:after, .post-navigation .nav-previous:after position: inherit;.header-menu-container ul.menu>li.kadence-menu-mega-columns-3>ul.sub-menu grid-template-columns: 30% 30% 30%; .single-post .entry-header margin-bottom: 0px !important;.comment-navigation .nav-links, .post-navigation .nav-links display: flex !important;flex-flow: row !important;justify-content: space-between !important;.site-header-row display: flex !important;justify-content: space-evenly;.header-navigation ul margin: 0 !important;.header-menu-container ul.menu>li.kadence-menu-mega-width-custom>ul.sub-menu transition-duration: .5s !important;@media (max-width: 767px) .hidden-phone display: none !important;.vs-sticky min-width: 100px; max-width: 300px; left: 0px; position: sticky; background-color: white !important;@media (max-width: 767px).kt-row-column-wrap.kt-mobile-layout-row>.wp-block-kadence-column margin-bottom: 0px !important;.wp-has-aspect-ratio--aspect-ratio:56.25% !important;.wgs_wrapper td.gsib_apadding: 0px; background: none;.wgs_wrapper .gsc-input-boxborder:1px solid black;@media(max-width: 360px) .responsivetable width: 38%; @media screen and (max-width: 540px) and (min-width: 361px) .responsivetable width: 35%; @media screen and (max-width: 541px) and (min-width: 959px) .responsivetable width: 30%; @media screen and (max-width: 1599px) and (min-width: 960px) .responsivetable width: 16%; @media screen and (min-width: 1600px) .responsivetable width: 15%; h1, h2, h3, h4, h5, h6 font-weight: 700 !important;.wp-block-latest-posts.wp-block-latest-posts__list.is-grid li>acolor:#0556f3;div.w3-container.w3-half box-sizing: border-box;float: left;width: 100%;div.w3-row.w3-border::after clear: both;content: "";display: table;div.w3-row.w3-border::before clear: both;content: "";display: table;@media (min-width: 601px) div.w3-container.w3-half width: 50%;.top-prosbackground:green;color:#FFF;margin-right: 10px !important;padding:5px;.top-consbackground:darkred;color:#FFF;margin-left: 10px !important;padding:5px;.entry-content a.nohover:hover background: transparent;div.lasso-grid-row .lasso-description min-height: 10px;div.lasso-grid-row .lasso-badge color: #fff;background:#5e36ca !important;div.lasso-grid-row .lasso-description font-size: 20px;.lasso-grid-row .lasso-splash .lasso-title min-height: 10px;a.lasso-button-1background: #2f81ff !important;@media screen and (max-width: 1200px)div.lasso-grid-row .lasso-description min-height: 10px !important;.hilr background-color: #ffb1b5 !important;.hilb background-color: #c1f7ff !important;.hilight background-color: yellow !important;a:hover.button1 background: #2f81ff !important;.header-menu-container ul.menu>li.menu-item-has-children>ul.sub-menu visibility: hidden !important;.header-menu-container ul.menu>li.menu-item-has-children>ul.sub-menu.show visibility: visible !important; opacity: 1; clip: auto; height: auto; overflow: visible;.lasso-badgez-index: 10;.header-menu-container ul.menu>li.kadence-menu-mega-enabled>ul a width: 100% !important;@media (max-width: 500px) .entry-meta-divider-customicon span.meta-label display: none;@media (max-width: 1024px) .primary-sidebar.widget-areadisplay: none;.toolbutton background: #f68700 !important;border-radius: 1000px;padding: 10px 27px;color: #ffffff !important;display: inline-block;font-weight: bold;font-size: 27px;letter-spacing: 0.8px;a:hover.toolbutton background: #ff9f00 !important;color: #ffffff !important;.site-main-header-wrap .site-header-row-container-inner border-bottom: 1px solid #cccccc;.box12border: 0.3px solid #eee; box-sizing: border-box; border-radius: 8px; padding-top: 10px; padding-left: 15px; line-height: 1.8em; background: #F6FCFF;div.w3-topta-container1.w3-topta-half1 box-sizing: border-box;float: left;width: 100%;border: 1px solid #e0def5;margin: 5px;border-radius: 15px;padding: 10px;background-color: #f2f1fb;div.w3-topta-row1.w3-topta-border1::after clear: both;content: "";display: table;div.w3-topta-row1.w3-topta-border1::before clear: both;content: "";display: table;@media (min-width: 766px) div.w3-topta-container1.w3-topta-half1 width: 18.5%;@media (min-width: 766px) div.topta-lastbox width: 19% !important;.topta-button2 background: #2f81ff !important; color: #fff!important; font-size: 18px; padding: 10px 50px; text-align: center; text-transform: none; white-space: nowrap;border-radius: 1000px;@media only screen and (min-width: 767px) and (max-width: 1023px) .topta-button2 padding: 10px 15px !important; @media only screen and (min-width: 1024px) and (max-width: 1149px) .topta-button2 padding: 10px 30px !important; div.elementor-widget-topta-container99 box-sizing: border-box;color: #111111;font-size: 15px;line-height: 25.5px;word-wrap: break-word;margin-bottom:15px;div.top-3__topta-best-choise99 align-items: center;background: #5e36ca;bottom: 0px;box-sizing: border-box;color: white;display: flex;font-size: 15px;font-weight: 600;height: 40px;justify-content: center;left: 0px;line-height: 25.5px;margin: -30px auto 0px;position: relative;right: 0px;text-align: center;text-transform: capitalize;top: 0px;width: 150px;word-wrap: break-word;div.top-3__topta-best-choise99::before border-style: solid;border-width: 0px 0px 20px 20px;content: "";left: 0px;margin-left: -20px;position: absolute;top: 0px;border-color: transparent transparent #1e0b7c transparent;@media (max-width: 766px) div.top-3__topta-best-choise99margin: -15px auto 0px !important;#more1 display: none;.kt-blocks-accordion-header background: #f7f9fe !important;.kt-blocks-accordion-header:hover background: #ffffff !important;.rll-youtube-player, [data-lazy-src]display:none !important;Skip to contentHomeTestingExpandAgile TestingJUnitQuality Center(ALM)BugzillaHP LoadrunnerRPACucumberSoftware TestingSAP TestingDatabase TestingMobile TestingSeleniumETL TestingMantisSoapUIJMeterPostmanTEST ManagementJIRAQTPTestLinkSAPExpandABAPCRMPI/POAPOCrystal ReportsPPBeginnersFICOSDBasisHANASAPUI5BODSHRSecurity TutorialBI/BWMMSolution ManagerBPCQMSuccessfactorsCOPayrollSAP CoursesWebExpandApacheJavaPHPSQL ServerAngularJSJSPPL/SQLUMLASP.NETKotlinPostgreSQLVB.NETCLinuxPythonVBScriptC#MariaDBReactJSWeb ServicesC++MS AccessRuby & RailsWPFCodeIgniterMySQLScalaSQLiteDBMSNode.jsSQLPerlJavaScriptMust LearnExpandAccountingEmbedded SystemsOperating SystemAlgorithmsEthical HackingPMPAndroidExcel TutorialPhotoshopBlockchainGo ProgrammingProject ManagementBusiness AnalystIoTReviewsBuild WebsiteITILSalesforceCloud ComputingJenkinsSEOCOBOLMISSoftware EngineeringCompiler DesignMovieVBACoursesNetworkingVPNBig DataExpandAWSHivePower BIBig DataInformaticaQlikviewCassandraMicroStrategyTableauCognosMongoDBTalendData WarehousingNiFiZooKeeperDevOpsOBIEEPentahoHBaseLive ProjectExpandLive Agile TestingLive Selenium ProjectLive HP ALMLive Selenium 2Live Java ProjectLive Security TestingLive Mobile TestingLive Testing ProjectLive Payment GatewayLive Testing 2Live PHP ProjectLive TelecomLive Projects HubLive UFT/QTP TestingLive Python ProjectLive SEO ProjectAIExpandArtificial IntelligencePyTorchData ScienceR ProgrammingKerasTensorFlowNLTKSearchToggle MenuFacebook Login using Python: FB Login ExampleBySteve CampbellHoursUpdatedJanuary 14, 2023@media(min-width: 520px).responsive-guru99-mobile1 float:left;min-height: 280px; @media(max-width: 519px).responsive-guru99-mobile1 min-height: 280px !important; @media(max-width: 499px).responsive-guru99-mobile1display: none !important;@media(max-width: 499px).responsive-guru99-mobile12 margin-right:6px;width:345px;min-height:100px; googletag.cmd.push(function() googletag.display('div-gpt-ad-1565016699961-0'); if (typeof(pubwise) != 'undefined' && pubwise.enabled === true) pbjs.que.push(function () pwRegisterLazyLoad(gptadslots['div-gpt-ad-1565016699961-0'], 1, [50,0,50,0], 0, 768, 2); ); else googletag.pubads().refresh([gptadslots['div-gpt-ad-1565016699961-0']]); ); googletag.cmd.push(function() googletag.display('div-gpt-ad-1565016699961-1'); if (typeof(pubwise) != 'undefined' && pubwise.enabled === true) pbjs.que.push(function () pwRegisterLazyLoad(gptadslots['div-gpt-ad-1565016699961-1'], 1, [50,0,50,0], 0, 768, 2); ); else googletag.pubads().refresh([gptadslots['div-gpt-ad-1565016699961-1']]); ); In order to log into Facebook using Python, you need to use Selenium (a web automation tool). Selenium can automate and control a browser and click, fill text, submit buttons that appear on various websites. 2ff7e9595c


 
 
 

Recent Posts

See All

Comments


© 2023 by Jake Johnson. Proudly created with Wix.com

  • Facebook
  • Instagram
bottom of page