激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - laravel5實現微信第三方登錄功能

laravel5實現微信第三方登錄功能

2019-07-26 11:21如是說 PHP教程

這篇文章主要介紹了laravel5實現微信第三方登錄功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

背景

最近手頭一個項目需要實現用戶在網站的第三方登錄(微信和微博),后端框架laravel5.4。

實現過程以微信網頁版第三方登錄,其他于此類似,在此不做重復。

準備工作

網站應用微信登錄是基于OAuth2.0協議標準構建的微信OAuth2.0授權登錄系統。
在進行微信OAuth2.在進行微信OAuth2.0授權登錄接入之前,在微信開放平臺注冊開發者帳號,并擁有一個已審核通過的網站應用,并獲得相應的AppID和AppSecret,申請微信登錄且通過審核后,可開始接入流程。

總結下來就是:

1.進入微信開放平臺注冊開發者賬號
2.根據項目類型創建應用,再此我創建的是網站應用.
3.接入微信登陸功能,讓用戶可使用微信登錄你的網站應用
4.獲得AppID和AppSectet

到此微信第三方登錄的準備工作就完成了。

授權流程說明

1. 第三方發起微信授權登錄請求,微信用戶允許授權第三方應用后,微信會拉起應用或重定向到第三方網站,并且帶上授權臨時票據code參數;
2. 通過code參數加上AppID和AppSecret等,通過API換取access_token;
3. 通過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操作。

laravel5實現微信第三方登錄功能

在框架中實現(laravel)

Laravel Socialite簡介

除了傳統的基于表單的登錄認證外,Laravel 還可以通過Laravel Socialite 提供 OAuth 認證,目前支持的認證驅動包括 Facebook、Twitter、Google、LinkedIn、GitHub 和 Bitbucket。

安裝相關依賴

composer require laravel/socialite

安裝weixin-web

composer require socialiteproviders/weixin-web

注意網站實現微信登錄需要的依賴包為socialiteproviders/weixin-web,如果是手機端App那么可以用socialiteproviders/weixin。

shanlei@shanlei-Lenovo-ideapad-110-15ISK:/var/www/html/zslm_back$ composer search socialiteproviders/weixin
socialiteproviders/weixin Weixin OAuth2 Provider for Laravel Socialite
socialiteproviders/weixin-web Weixin-Web OAuth2 Provider for Laravel Socialite
socialiteproviders/weixin-web Weixin-Web OAuth2 Provider for Laravel Socialite
socialiteproviders/weixin Weixin OAuth2 Provider for Laravel Socialite

相關配置

1. 設置app/config.php

添加providers:

'providers' => [
SocialiteProviders\Manager\ServiceProvider::class,
],

添加aliases:

'aliases' => [ 
 'Socialite' => Laravel\Socialite\Facades\Socialite::class, 
],

2. 配置config/services.php

 'weixinweb' => [
 'client_id' => env('WEIXIN_KEY'),
 'client_secret' => env('WEIXIN_SECRET'),
 'redirect' => env('WEIXIN_REDIRECT_URI'),
 ],

3. 設置app/Providers/EventServiceProvider.php

添加事件監聽

use SocialiteProviders\Manager\SocialiteWasCalled;
 protected $listen = [
 'SocialiteProviders\Manager\SocialiteWasCalled' => [
  'SocialiteProviders\WeixinWeb\WeixinWebExtendSocialite@handle',
 ],
 ];

4. 添加路由

Route::get('auth/weixin', 'Auto\ThirdLogin\WeixinController@redirectToProvider');
Route::get('auth/weixin/callback','Auto\ThirdLogin\WeixinController@handleProviderCallback');

5. 編寫WeixinController

<?php
/**
 * Created by PhpStorm.
 * User: shanlei
 * Date: 1/6/2017
 * Time: 11:34 AM
 */

namespace App\Http\Controllers\Auto\ThirdLogin;

use Socialite;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use SocialiteProviders\WeixinWeb\Provider;

class WeixinController extends Controller{
 public function redirectToProvider(Request $request)
 { 
 return Socialite::with('weixinweb')->redirect();
 }
 public function handleProviderCallback(Request $request)
 {
 $user_data = Socialite::with('weixinweb')->stateless()->user();
 dd($user_data);
 }
}

訪問auth/weixin,獲得返回數據。

laravel5實現微信第三方登錄功能

常見錯誤

1. 微信授權回調域不符(redirect_uri不符),參見下面規范:?

laravel5實現微信第三方登錄功能

2. 執行過程中出現一下錯誤:

exception 'Laravel\Socialite\Two\InvalidStateException' 
in /example/vendor/laravel/socialite/src/Two/AbstractProvider.php:161

解決:

通過stateless()方法禁止會話狀態驗證

Socialite::driver('weixinweb')->stateless()->user()

總結

以上所述是小編給大家介紹的laravel5實現微信第三方登錄功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色99久久| 国产99视频在线观看 | 精品久久久久久久久久中出 | 成年人黄色片视频 | 久久亚洲一区二区三区成人国产 | 精品亚洲一 | 国产人妖一区二区 | 国产一区二区三区手机在线 | 污黄视频在线播放 | 欧美成a人片在线观看久 | 久久久久国产成人免费精品免费 | 欧美一区二区三区免费观看 | 98色视频| 久久国产精品久久久久久电车 | 免费啪视频在线观看 | 在线播放免费视频 | 黄色a级片免费观看 | 在线观看国产免费视频 | 羞羞羞羞视频 | 九色免费视频 | 少妇一级淫片免费放播放 | 成人性视频在线 | 国产亚洲精品综合一区91 | 91福利国产在线观一区二区 | 国产毛毛片一区二区三区四区 | 一级一级一级毛片 | 羞羞视频免费入口网站 | 极品一级片 | 国产一区二区三区高清 | 国产免费v片 | 黄免费在线 | 操操日日| caoporn国产一区二区 | 欧美日韩高清在线观看 | 美女污污视频在线观看 | 国产一区二区三区四区波多野结衣 | 国产高清成人久久 | 国产超碰人人做人人爱 | 国产一级一级片 | 国产精品久久久久久模特 | 成人国产精品免费 |