{"id":3887,"date":"2021-01-21T04:25:07","date_gmt":"2021-01-21T04:25:07","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=3887"},"modified":"2021-01-21T07:23:17","modified_gmt":"2021-01-21T07:23:17","slug":"laravel-socialite","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/laravel-socialite\/","title":{"rendered":"Laravel Socialite"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Laravel Socialite manages the cost of an expressive, familiar interface to OAuth validation with Facebook, Twitter, Google, LinkedIn, GitHub, GitLab, and Bitbucket. It handles nearly all of the boilerplate social authentication code you&#8217;re dreading writing.<\/p>\n<h3>Installation<\/h3>\n<p><code>composer require laravel\/socialite<\/code><\/p>\n<h3>Configuration<\/h3>\n<p>Earlier than using Socialite, you will also want to add credentials for the OAuth services your software utilizes. Those credentials need to be placed for your config\/offerings.personal home page configuration document and should use the important thing Facebook, Twitter, LinkedIn, Google, Github, GitLab, or Bitbucket, depending on the vendors your software calls for. <\/p>\n<p><strong>for example:<\/strong><br \/>\n<code>'github' => [<br \/>\n    'client_id' => env('GITHUB_CLIENT_ID'),<br \/>\n    'client_secret' => env('GITHUB_CLIENT_SECRET'),<br \/>\n    'redirect' => 'http:\/\/your-callback-url',<br \/>\n],<\/code><\/p>\n<h3>Routing<\/h3>\n<p>Subsequent, you&#8217;re ready to authenticate customers! you&#8217;ll want two routes: one for redirecting the user to the OAuth issuer, and any other for receiving the callback from the company after authentication. we can get entry to Socialite the use of the Socialite facade:<br \/>\n<code><br \/>\n&lt;?php<br \/>\nnamespace App\\Http\\Controllers\\Auth;<br \/>\nuse App\\Http\\Controllers\\Controller;<br \/>\nuse Laravel\\Socialite\\Facades\\Socialite;<br \/>\nclass LoginController extends Controller<br \/>\n{<br \/>\n    \/**<br \/>\n     * Redirect the user to the GitHub authentication page.<br \/>\n     *<br \/>\n     * @return \\Illuminate\\Http\\Response<br \/>\n     *\/<br \/>\n    public function redirectToProvider()<br \/>\n    {<br \/>\n        return Socialite::driver('github')->redirect();<br \/>\n    }<br \/>\n    \/**<br \/>\n     * Obtain the user information from GitHub.<br \/>\n     *<br \/>\n     * @return \\Illuminate\\Http\\Response<br \/>\n     *\/<br \/>\n    public function handleProviderCallback()<br \/>\n    {<br \/>\n        $user = Socialite::driver('github')->user();<\/p>\n<p>        \/\/ $user->token;<br \/>\n    }<br \/>\n}<\/code><\/p>\n<p>The redirect approach looks after sending the user to the OAuth issuer, while the user approach will study the incoming request and retrieve the person&#8217;s information from the company.<br \/>\nyou will want to define routes for your controller methods:<br \/>\n<code>use App\\Http\\Controllers\\Auth\\LoginController;<br \/>\nRoute::get('login\/github', [LoginController::class, 'redirectToProvider']);<br \/>\nRoute::get('login\/github\/callback', [LoginController::class, 'handleProviderCallback']);<\/code><\/p>\n<h3>Retrieving User Details<\/h3>\n<p>Once you have got a person example, you could grab a few greater details about the user:<\/p>\n<p><code>$user = Socialite::driver('github')->user();<br \/>\n\/\/ OAuth Two Providers<br \/>\n$token = $user->token;<br \/>\n$refreshToken = $user->refreshToken; \/\/ not always provided<br \/>\n$expiresIn = $user->expiresIn;<br \/>\n\/\/ OAuth One Providers<br \/>\n$token = $user->token;  \/\/to get user token<br \/>\n$tokenSecret = $user->tokenSecret;  \/\/to get user token secret<br \/>\n\/\/ All Providers<br \/>\n$user->getId();  \/\/to get user id<br \/>\n$user->getNickname(); \/\/to get user nickname<br \/>\n$user->getName();  \/\/to get user name<br \/>\n$user->getEmail();  \/\/to get user email<br \/>\n$user->getAvatar(); \/\/to get user avatar<\/code><\/p>\n<p><strong>Retrieving User Details From A Token (OAuth2)<\/strong><br \/>\nIf you have already got a legitimate get right of entry to a token for a person, you could retrieve their information the use of the userFromToken approach:<\/p>\n<p><code>$user = Socialite::driver('github')->userFromToken($token);<\/code><\/p>\n<p><strong>Retrieving User Details From A Token And Secret (OAuth1)<\/strong><br \/>\nIf you have already got a valid pair of token \/ mystery for a person, you may retrieve their info using the userFromTokenAndSecret method:<br \/>\n<code>$user = Socialite::driver('twitter')->userFromTokenAndSecret($token, $secret);<\/code><\/p>\n<p><small><em>People having good knowledge of Financial accounting can get an accounting certification from StudySection to increase their chances of getting a job in this field. You can get a foundation level certification if you are new to <a href=\"https:\/\/www.studysection.com\/financial-accounting-advanced\">Financial Accounting<\/a> or you can go for advanced level certification if you have expert level skills in Financial accounting.<\/em><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Laravel Socialite manages the cost of an expressive, familiar interface to OAuth validation with Facebook, Twitter, Google, LinkedIn, GitHub,<\/p>\n","protected":false},"author":1,"featured_media":3890,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[189,65],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>StudySection Blog - Laravel Socialite - The PHP Framework For Web<\/title>\n<meta name=\"description\" content=\"Laravel Socialite manages the cost of an expressive to OAuth validation with FB, Twitter, Google, LinkedIn, GitHub, GitLab, and Bitbucket.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/laravel-socialite\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"StudySection Blog - Laravel Socialite - The PHP Framework For Web\" \/>\n<meta property=\"og:description\" content=\"Laravel Socialite manages the cost of an expressive to OAuth validation with FB, Twitter, Google, LinkedIn, GitHub, GitLab, and Bitbucket.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/laravel-socialite\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-21T04:25:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-21T07:23:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/01\/socialite.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/laravel-socialite\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/laravel-socialite\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Laravel Socialite\",\"datePublished\":\"2021-01-21T04:25:07+00:00\",\"dateModified\":\"2021-01-21T07:23:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/laravel-socialite\/\"},\"wordCount\":323,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"keywords\":[\"Framework\",\"laravel\"],\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/laravel-socialite\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/laravel-socialite\/\",\"url\":\"https:\/\/studysection.com\/blog\/laravel-socialite\/\",\"name\":\"StudySection Blog - Laravel Socialite - The PHP Framework For Web\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2021-01-21T04:25:07+00:00\",\"dateModified\":\"2021-01-21T07:23:17+00:00\",\"description\":\"Laravel Socialite manages the cost of an expressive to OAuth validation with FB, Twitter, Google, LinkedIn, GitHub, GitLab, and Bitbucket.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/laravel-socialite\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/laravel-socialite\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/laravel-socialite\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel Socialite\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"StudySection Blog - Laravel Socialite - The PHP Framework For Web","description":"Laravel Socialite manages the cost of an expressive to OAuth validation with FB, Twitter, Google, LinkedIn, GitHub, GitLab, and Bitbucket.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/studysection.com\/blog\/laravel-socialite\/","og_locale":"en_US","og_type":"article","og_title":"StudySection Blog - Laravel Socialite - The PHP Framework For Web","og_description":"Laravel Socialite manages the cost of an expressive to OAuth validation with FB, Twitter, Google, LinkedIn, GitHub, GitLab, and Bitbucket.","og_url":"https:\/\/studysection.com\/blog\/laravel-socialite\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2021-01-21T04:25:07+00:00","article_modified_time":"2021-01-21T07:23:17+00:00","og_image":[{"width":300,"height":200,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/01\/socialite.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/laravel-socialite\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/laravel-socialite\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Laravel Socialite","datePublished":"2021-01-21T04:25:07+00:00","dateModified":"2021-01-21T07:23:17+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/laravel-socialite\/"},"wordCount":323,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"keywords":["Framework","laravel"],"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/laravel-socialite\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/laravel-socialite\/","url":"https:\/\/studysection.com\/blog\/laravel-socialite\/","name":"StudySection Blog - Laravel Socialite - The PHP Framework For Web","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2021-01-21T04:25:07+00:00","dateModified":"2021-01-21T07:23:17+00:00","description":"Laravel Socialite manages the cost of an expressive to OAuth validation with FB, Twitter, Google, LinkedIn, GitHub, GitLab, and Bitbucket.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/laravel-socialite\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/laravel-socialite\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/laravel-socialite\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel Socialite"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":405,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3887"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=3887"}],"version-history":[{"count":2,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3887\/revisions"}],"predecessor-version":[{"id":3891,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3887\/revisions\/3891"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/3890"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=3887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=3887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=3887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}