{"id":25673,"date":"2021-06-12T13:05:00","date_gmt":"2021-06-12T10:05:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25673"},"modified":"2021-10-18T02:30:17","modified_gmt":"2021-10-17T23:30:17","slug":"melden-sie-sich-mit-linkedin-in-laravel-mit-laravel-socialite-an","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/melden-sie-sich-mit-linkedin-in-laravel-mit-laravel-socialite-an\/","title":{"rendered":"Melden Sie sich mit LinkedIn in Laravel mit Laravel Socialite an"},"content":{"rendered":"<p>Das Hinzuf\u00fcgen eines Social-Login-Systems auf der Website ist heutzutage der Trend. Durch die Integration von Social Login wird der Verifizierungsprozess eines Benutzers \u00fcbersprungen. Soziale Websites haben bereits Benutzer verifiziert, sodass unsere Anwendung nicht denselben Vorgang mit einem Benutzer ausf\u00fchren muss. Wir k\u00f6nnen uns auf soziale Websites verlassen und dem Benutzer die Nutzung unseres Systems erm\u00f6glichen, wenn er sich \u00fcber eine soziale Website auf unserer Website einloggt. Facebook, Twitter, Google, LinkedIn sind die beliebten Social Sites, die normalerweise als Social Login in die Website integriert sind. In diesem Artikel behandeln wir eine Anmeldung mit LinkedIn in Laravel.<\/p>\n<p>F\u00fcr unser Tutorial werde ich LinkedIn-Login in die neue Laravel-Installation integrieren. Ich werde Laravel installieren, eine &#8218;Benutzer&#8216;-Tabelle erstellen und die Pakete installieren, die f\u00fcr die Integration des Social-Login-Systems erforderlich sind.<\/p>\n<p>F\u00fchren Sie den folgenden Befehl aus, um Laravel zu installieren. Hier erstelle ich ein Projekt als &#8218;linkedinlogin&#8216;.<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel linkedinlogin<\/code><\/pre>\n<p>Erstellen Sie nach der Installation die Datenbank und legen Sie die Anmeldeinformationen in der <code>.env<\/code>Datei fest. Wir bauen ein Login-System, damit wir Benutzerdaten in der Datenbank speichern sollten.<\/p>\n<p>Dieses Tutorial basiert auf der LinkedIn-Anmeldung, sodass wir nach erfolgreicher Authentifizierung die LinkedIn-Profil-ID des Benutzers erhalten. Um diese soziale ID zu speichern, f\u00fcgen wir die Spalten provider und provider_id hinzu. Hier wird die Spalte &quot;Provider&quot; den Wert &quot;linkedin&quot; speichern und &quot;provider_id&quot; w\u00fcrde die soziale ID des Benutzers speichern.<\/p>\n<p>Wenn wir Social Login verwendet haben, m\u00fcssen wir keine Passw\u00f6rter speichern, daher sollte der Wert der Passwortspalte standardm\u00e4\u00dfig &#8218;NULL&#8216; akzeptieren. Es gibt keine Garantie, die E-Mail des Benutzers nach der Anmeldung in sozialen Netzwerken zu erhalten, daher m\u00fcssen wir aus Neugierde auch die E-Mail-Spalte so einstellen, dass sie &#8218;NULL&#8216; akzeptiert.<\/p>\n<p>\u00d6ffnen Sie die Migrationsdatei f\u00fcr die Benutzertabelle und f\u00fcgen Sie den folgenden Code hinzu.<\/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>F\u00fchren Sie den folgenden Befehl aus, der die Tabellen in unserer Datenbank erstellt.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Wir m\u00fcssen diese beiden Spalten auch in unserem Benutzermodell hinzuf\u00fcgen.<\/p>\n<p><strong>app\/User.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>LinkedIn-Anwendung erstellen<\/h3>\n<p>Um das LinkedIn-Login zu integrieren, sollten Sie die Anwendung auf Ihrem LinkedIn-Konto erstellen. Wir ben\u00f6tigen die Client-ID, das Client-Geheimnis der LinkedIn-Anwendung. Wir m\u00fcssen auch eine autorisierte Weiterleitungs-URL in der Anwendung festlegen.<\/p>\n<ul>\n<li>Gehen Sie zum <a href=\"https:\/\/www.linkedin.com\/secure\/developer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">LinkedIn-Entwicklernetzwerk<\/a>.<\/li>\n<li>Klicken Sie auf die Schaltfl\u00e4che \u201eAnwendung erstellen&#8220;.<\/li>\n<li>F\u00fcllen Sie die Informationen im Formular aus.<\/li>\n<li>F\u00fcgen Sie <code>http:\/\/localhost:8000\/linkedin\/callback<\/code>das Feld Autorisierte Weiterleitungs-URLs hinzu.<\/li>\n<li>Kopieren Sie die Client-ID und den geheimen Clientschl\u00fcssel.<\/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=\"Melden Sie sich mit LinkedIn in Laravel mit Laravel Socialite an\" ><\/a><\/p>\n<p>Nach den obigen Schritten m\u00fcssen Sie das Produkt \u201eMit LinkedIn anmelden&#8220; zu Ihrer LinkedIn-Anwendung hinzuf\u00fcgen. Klicken Sie auf die Registerkarte \u201eProdukte&#8220; und w\u00e4hlen Sie \u201eMit LinkedIn anmelden&#8220;. Wenn Sie dieses Produkt ausw\u00e4hlen, wird es \u00fcberpr\u00fcft und dann als hinzugef\u00fcgtes Produkt hinzugef\u00fcgt. Die \u00dcberpr\u00fcfung kann einige Zeit in Anspruch nehmen. In meinem Fall hat es ungef\u00e4hr 10 Minuten gedauert.<\/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=\"Melden Sie sich mit LinkedIn in Laravel mit Laravel Socialite an\" ><\/a><\/p>\n<h3>Routen und Controller erstellen<\/h3>\n<p>Wir k\u00f6nnen jetzt damit beginnen, einen Code in Laravel hinzuzuf\u00fcgen. Erstellen Sie einen Controller <code>LoginController<\/code>mit dem Befehl:<\/p>\n<pre><code>php artisan make:controller LoginController<\/code><\/pre>\n<p>Erstellen Sie als N\u00e4chstes eine Blade-Datei <code>login.blade.php<\/code>und f\u00fcgen Sie den folgenden HTML-Code hinzu.<\/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>Rufen Sie diese Ansicht mit der folgenden <code>index<\/code>Methode <code>LoginController<\/code>auf.<\/p>\n<pre><code>public function index()\n{\n\u00a0\u00a0\u00a0\u00a0return view('login');\n}<\/code><\/pre>\n<p>Lassen Sie uns die Routen daf\u00fcr definieren. Ich f\u00fcge auch einige weitere Routen hinzu, die im n\u00e4chsten Teil des Tutorials ben\u00f6tigt werden.<\/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>Wenn sich ein Benutzer bei LinkedIn anmeldet, werde ich ihn auf die <code>home<\/code>Route umleiten. Es ist nur f\u00fcr Demozwecke. Sie sollten diese Route in etwas anderes \u00e4ndern.<\/p>\n<h3>Einloggen mit LinkedIn Laravel<\/h3>\n<p>Laravel hat ein offizielles Paket Socialite. Dieses Paket hilft uns, das Social Login-System einfach in Laravel zu integrieren. Installieren Sie dieses Paket mit dem Befehl:<\/p>\n<pre><code>composer require laravel\/socialite<\/code><\/pre>\n<p>\u00d6ffnen Sie nach der Installation der Bibliothek <code>config\/services.php<\/code>die LinkedIn-Konfiguration und f\u00fcgen Sie sie wie folgt hinzu:<\/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>Jetzt m\u00fcssen wir unsere konstanten Werte in die <code>.env<\/code>Datei einf\u00fcgen.<\/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>Stellen Sie sicher, dass Sie Platzhalter durch ihre tats\u00e4chlichen Werte ersetzen. Die letzten Anpassungen sollten in die <code>LoginController.php<\/code>Datei aufgenommen werden. In dieser Datei schreiben wir eine Funktion, die einen Benutzer auf die LinkedIn-Anmeldeseite umleitet und bei erfolgreicher Autorisierung den Benutzer einloggt.<\/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>In unserem <code>LoginController<\/code>legen wir die Bereiche fest, <code>['r_liteprofile',\u00a0'r_emailaddress']<\/code>die erforderlich sind, um grundlegende Informationen eines LinkedIn-Benutzers abzurufen. In der Callback-Methode pr\u00fcfen wir, ob der Benutzer vorhanden ist, und wenn nicht, f\u00fcgen Sie den Benutzer der Datenbank hinzu.<\/p>\n<p>Ich hoffe, Sie verstehen, wie Sie sich mit LinkedIn in Laravel anmelden. Ich w\u00fcrde gerne Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten h\u00f6ren.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/google-login-in-laravel-mit-laravel-socialite\/\" title=\"Google-Login in Laravel mit Laravel Socialite\">Google-Login in Laravel mit Laravel Socialite<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-fugen-sie-google-oauth-login-in-website-mit-php-hinzu\/\" title=\"So f\u00fcgen Sie Google OAuth-Login in Website mit PHP hinzu\">So f\u00fcgen Sie Google OAuth-Login in Website mit PHP hinzu<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/erstellen-sie-eine-mehrsprachige-website-in-php-mit-dem-laravel-framework\/\" title=\"Erstellen Sie eine mehrsprachige Website in PHP mit dem Laravel Framework\">Erstellen Sie eine mehrsprachige Website in PHP mit dem Laravel Framework<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel zeige ich Ihnen, wie Sie sich mit Laravel Socialite in Ihrer Laravel-Anwendung anmelden k\u00f6nnen. Verwenden Sie soziales Login f\u00fcr Ihre Benutzer<\/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":[496],"tags":[845],"class_list":["post-25673","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=25673"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25673\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/20254"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=25673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}