{"id":25733,"date":"2021-06-12T13:10:00","date_gmt":"2021-06-12T10:10:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25733"},"modified":"2021-10-18T02:05:04","modified_gmt":"2021-10-17T23:05:04","slug":"connectez-vous-avec-linkedin-dans-laravel-en-utilisant-laravel-socialite","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/connectez-vous-avec-linkedin-dans-laravel-en-utilisant-laravel-socialite\/","title":{"rendered":"Connectez-vous avec LinkedIn dans Laravel en utilisant Laravel Socialite"},"content":{"rendered":"<p>L&rsquo;ajout d&rsquo;un syst\u00e8me de connexion sociale sur le site Web est la tendance de nos jours. En int\u00e9grant la connexion sociale, il sautera le processus de v\u00e9rification d&rsquo;un utilisateur. Les sites sociaux ont d\u00e9j\u00e0 v\u00e9rifi\u00e9 les utilisateurs, notre application n&rsquo;a donc pas besoin de suivre le m\u00eame processus avec un utilisateur. Nous pouvons nous appuyer sur des sites sociaux et permettre \u00e0 l&rsquo;utilisateur d&rsquo;utiliser notre syst\u00e8me s&rsquo;il se connecte via un site social sur notre site Web. Facebook, Twitter, Google, LinkedIn sont les sites sociaux populaires qui sont normalement int\u00e9gr\u00e9s en tant que connexion sociale au site Web. Dans cet article, nous couvrirons une connexion avec LinkedIn dans Laravel.<\/p>\n<p>Pour notre tutoriel, j&rsquo;int\u00e9grerai la connexion LinkedIn sur la nouvelle installation de Laravel. Je vais installer Laravel, cr\u00e9er une table \u00ab\u00a0utilisateurs\u00a0\u00bb et installer les packages n\u00e9cessaires pour int\u00e9grer le syst\u00e8me de connexion sociale.<\/p>\n<p>Ex\u00e9cutez la commande ci-dessous pour installer Laravel. Ici, je cr\u00e9e un projet en tant que &lsquo;linkedinlogin&rsquo;.<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel linkedinlogin<\/code><\/pre>\n<p>Apr\u00e8s l&rsquo;installation, cr\u00e9ez la base de donn\u00e9es et d\u00e9finissez les informations d&rsquo;identification dans le <code>.env<\/code>fichier. Nous construisons un syst\u00e8me de connexion, nous devons donc stocker les d\u00e9tails de l&rsquo;utilisateur dans la base de donn\u00e9es.<\/p>\n<p>Ce didacticiel est bas\u00e9 sur la connexion LinkedIn, nous obtiendrons donc l&rsquo;ID de profil LinkedIn de l&rsquo;utilisateur apr\u00e8s une authentification r\u00e9ussie. Pour stocker cet identifiant social, nous ajoutons les colonnes provider et provider_id. Ici, la colonne provider stockera la valeur &lsquo;linkedin&rsquo; et provider_id stockera l&rsquo;identifiant social de l&rsquo;utilisateur.<\/p>\n<p>Lorsque nous utilisons la connexion sociale, nous n&rsquo;avons pas besoin de stocker les mots de passe, la valeur de la colonne de mot de passe doit donc accepter \u00ab\u00a0NULL\u00a0\u00bb par d\u00e9faut. Il n&rsquo;y a aucune garantie d&rsquo;obtenir l&rsquo;e-mail de l&rsquo;utilisateur apr\u00e8s la connexion sociale, donc par curiosit\u00e9, nous devons \u00e9galement d\u00e9finir la colonne e-mail pour accepter \u00ab\u00a0NULL\u00a0\u00bb.<\/p>\n<p>Ouvrez le fichier de migration de la table des utilisateurs et ajoutez le code ci-dessous.<\/p>\n<pre><code>\/**\n\u00a0* Run the migrations.\n\u00a0*\n\u00a0* @return void\n\u00a0*\/\npublic function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('users', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;increments('id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('name');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('email')-&gt;nullable();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamp('email_verified_at')-&gt;nullable();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('password')-&gt;nullable();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('provider');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('provider_id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;rememberToken();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>Ex\u00e9cutez la commande ci-dessous qui cr\u00e9era les tables dans notre base de donn\u00e9es.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Nous devons \u00e9galement ajouter ces deux colonnes dans notre mod\u00e8le utilisateur.<\/p>\n<p><strong>app\/Utilisateur.php<\/strong><\/p>\n<pre><code>\/**\n\u00a0* The attributes that are mass assignable.\n\u00a0*\n\u00a0* @var array\n\u00a0*\/\nprotected $fillable = [\n\u00a0\u00a0\u00a0\u00a0'name', 'email', 'password', 'provider', 'provider_id'\n];<\/code><\/pre>\n<h3>Cr\u00e9er une application LinkedIn<\/h3>\n<p>Afin d&rsquo;int\u00e9grer la connexion LinkedIn, vous devez cr\u00e9er l&rsquo;application sur votre compte LinkedIn. Nous avons besoin de l&rsquo;identifiant client, du secret client de l&rsquo;application LinkedIn. Nous devons \u00e9galement d\u00e9finir une URL de redirection autoris\u00e9e dans l&rsquo;application.<\/p>\n<ul>\n<li>Acc\u00e9dez au <a href=\"https:\/\/www.linkedin.com\/secure\/developer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">r\u00e9seau de d\u00e9veloppeurs LinkedIn<\/a>.<\/li>\n<li>Cliquez sur le bouton &lsquo;Cr\u00e9er une application&rsquo;.<\/li>\n<li>Compl\u00e9tez les informations sur le formulaire.<\/li>\n<li>Ajoutez <code>http:\/\/localhost:8000\/linkedin\/callback<\/code>dans le champ URL de redirection autoris\u00e9es.<\/li>\n<li>Copiez l&rsquo;ID client et les cl\u00e9s secr\u00e8tes du client.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20253-6081d37e35c27.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20253-6081d37e35c27.png\" alt=\"Connectez-vous avec LinkedIn dans Laravel en utilisant Laravel Socialite\" ><\/a><\/p>\n<p>Apr\u00e8s les \u00e9tapes ci-dessus, vous devez ajouter le produit \u00ab\u00a0Se connecter avec LinkedIn\u00a0\u00bb \u00e0 votre application LinkedIn. Cliquez sur l&rsquo;onglet \u00ab\u00a0produits\u00a0\u00bb et choisissez \u00ab\u00a0Se connecter avec LinkedIn\u00a0\u00bb. Lors de la s\u00e9lection de ce produit, il sera examin\u00e9 puis inclus en tant que produit ajout\u00e9. Cela peut prendre un certain temps pour l&rsquo;examen. Dans mon cas, cela a pris environ 10 minutes.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20253-6081d37e35c27.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20253-6081d37e35c27.png\" alt=\"Connectez-vous avec LinkedIn dans Laravel en utilisant Laravel Socialite\" ><\/a><\/p>\n<h3>Cr\u00e9er des routes et un contr\u00f4leur<\/h3>\n<p>Nous pouvons maintenant commencer \u00e0 ajouter un code dans Laravel. Cr\u00e9ez un contr\u00f4leur <code>LoginController<\/code>\u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>php artisan make:controller LoginController<\/code><\/pre>\n<p>Ensuite, cr\u00e9ez un fichier blade <code>login.blade.php<\/code>et ajoutez-y le code HTML suivant.<\/p>\n<pre><code>&lt;a href=\"{{ url('\/login\/linkedin') }}\"&gt;\n\u00a0\u00a0\u00a0\u00a0{{ __('Login with LinkedIn') }}\n&lt;\/a&gt;<\/code><\/pre>\n<p>Appelez cette vue \u00e0 partir de la <code>index<\/code>m\u00e9thode de <code>LoginController<\/code>comme suit.<\/p>\n<pre><code>public function index()\n{\n\u00a0\u00a0\u00a0\u00a0return view('login');\n}<\/code><\/pre>\n<p>D\u00e9finissons les itin\u00e9raires pour cela. J&rsquo;ajoute \u00e9galement quelques routes suppl\u00e9mentaires qui seront n\u00e9cessaires dans la prochaine partie du didacticiel.<\/p>\n<pre><code>Route::get('login', 'LoginController@index');\nRoute::get('login\/{provider}', 'LoginController@redirectToProvider');\nRoute::get('{provider}\/callback', 'LoginController@handleProviderCallback');\nRoute::get('\/home', function() {\n\u00a0\u00a0\u00a0\u00a0return 'User is logged in';\n});<\/code><\/pre>\n<p>Lorsqu&rsquo;un utilisateur se connectera avec LinkedIn, je le redirigerai vers l&rsquo; <code>home<\/code>itin\u00e9raire. C&rsquo;est juste \u00e0 des fins de d\u00e9monstration. Vous devriez changer cet itin\u00e9raire en quelque chose d&rsquo;autre.<\/p>\n<h3>Connectez-vous avec LinkedIn Laravel<\/h3>\n<p>Laravel a un package officiel Socialite. Ce package nous aide \u00e0 int\u00e9grer facilement le syst\u00e8me de connexion sociale dans Laravel. Installez ce package \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>composer require laravel\/socialite<\/code><\/pre>\n<p>Apr\u00e8s avoir install\u00e9 la biblioth\u00e8que, ouvrez <code>config\/services.php<\/code>et ajoutez la configuration LinkedIn comme suit\u00a0:<\/p>\n<pre><code>'linkedin' =&gt; [\n\u00a0\u00a0\u00a0\u00a0'client_id' =&gt; env('LINKEDIN_CLIENT_ID'),\n\u00a0\u00a0\u00a0\u00a0'client_secret' =&gt; env('LINKEDIN_CLIENT_SECRET'),\n\u00a0\u00a0\u00a0\u00a0'redirect' =&gt; env('LINKEDIN_CALLBACK_URL'),\n],<\/code><\/pre>\n<p>Maintenant, nous devons ajouter nos valeurs constantes dans le <code>.env<\/code>fichier.<\/p>\n<pre><code>LINKEDIN_CLIENT_ID=YOUR_CLIENT_ID\nLINKEDIN_CLIENT_SECRET=YOUR_CLIENT_SECRET\nLINKEDIN_CALLBACK_URL=http:\/\/localhost:8000\/linkedin\/callback<\/code><\/pre>\n<p>Assurez-vous de remplacer les espaces r\u00e9serv\u00e9s par leurs valeurs r\u00e9elles. Les derniers ajustements devraient aller dans le <code>LoginController.php<\/code>fichier. Dans ce fichier, nous \u00e9crivons une fonction qui redirige un utilisateur vers la page de connexion LinkedIn, et en cas d&rsquo;autorisation r\u00e9ussie, il connectera l&rsquo;utilisateur.<\/p>\n<p><strong>LoginController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse Socialite;\nuse AppModelsUser;\nuse Auth;\n\u00a0\nclass LoginController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Where to redirect users after login.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @var string\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0protected $redirectTo = '\/home';\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Call the view\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return view('login');\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Redirect the user to the Linkedin authentication page.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return Response\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function redirectToProvider($provider)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return Socialite::driver($provider)-&gt;scopes(['r_liteprofile', 'r_emailaddress'])-&gt;redirect();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Obtain the user information from Linkedin.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return Response\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function handleProviderCallback($provider)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = Socialite::driver($provider)-&gt;user();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$authUser = $this-&gt;findOrCreateUser($user, $provider);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Auth::login($authUser, true);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect($this-&gt;redirectTo);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* If a user has registered before using social auth, return the user\n\u00a0\u00a0\u00a0\u00a0\u00a0* else, create a new user object.\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 $user Socialite user object\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param $provider Social auth provider\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return\u00a0 User\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function findOrCreateUser($user, $provider)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$authUser = User::where('provider_id', $user-&gt;id)-&gt;first();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($authUser) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $authUser;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return User::create([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name'\u00a0\u00a0\u00a0\u00a0 =&gt; $user-&gt;name,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email'\u00a0\u00a0\u00a0 =&gt; $user-&gt;email,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'provider' =&gt; $provider,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'provider_id' =&gt; $user-&gt;id\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Dans notre <code>LoginController<\/code>, nous d\u00e9finissons les \u00e9tendues <code>['r_liteprofile',\u00a0'r_emailaddress']<\/code>n\u00e9cessaires pour r\u00e9cup\u00e9rer les informations de base d&rsquo;un utilisateur LinkedIn. Dans la m\u00e9thode de rappel, nous v\u00e9rifions si l&rsquo;utilisateur existe et si ce n&rsquo;est pas le cas, ajoutons l&rsquo;utilisateur \u00e0 la base de donn\u00e9es.<\/p>\n<p>J&rsquo;esp\u00e8re que vous comprenez comment vous connecter avec LinkedIn dans Laravel. J&rsquo;aimerais entendre vos pens\u00e9es et suggestions dans la section des commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/connexion-google-dans-laravel-en-utilisant-laravel-socialite\/\" title=\"Connexion Google dans Laravel en utilisant Laravel Socialite\">Connexion Google dans Laravel en utilisant Laravel Socialite<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-ajouter-une-connexion-google-oauth-sur-un-site-web-avec-php\/\" title=\"Comment ajouter une connexion Google OAuth sur un site Web avec PHP\">Comment ajouter une connexion Google OAuth sur un site Web avec PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/creer-un-site-web-multilingue-en-php-a-l-aide-du-framework-laravel\/\" title=\"Cr\u00e9er un site Web multilingue en PHP \u00e0 l&#039;aide du framework Laravel\">Cr\u00e9er un site Web multilingue en PHP \u00e0 l&rsquo;aide du framework Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cet article, je vous montre comment ajouter une connexion avec LinkedIn en utilisant Laravel Socialite dans votre application Laravel. Utilisation de la connexion sociale de vos utilisateurs<\/p>\n","protected":false},"author":1,"featured_media":20254,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-25733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=25733"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25733\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20254"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=25733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=25733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=25733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}