最近手頭一個項目須要實現用戶在網站的第三方登陸(微信和微博),後端框架laravel5.4。php
實現過程以微信網頁版第三方登陸,其餘於此相似,在此不作重複。html
網站應用微信登陸是基於OAuth2.0協議標準構建的微信OAuth2.0受權登陸系統。
在進行微信OAuth2.在進行微信OAuth2.0受權登陸接入以前,在微信開放平臺註冊開發者賬號,並擁有一個已審覈經過的網站應用,並得到相應的AppID和AppSecret,申請微信登陸且經過審覈後,可開始接入流程。laravel
總結下來就是:git
到此微信第三方登陸的準備工做就完成了。github
1. 第三方發起微信受權登陸請求,微信用戶容許受權第三方應用後,微信會拉起應用或重定向到第三方網站,而且帶上受權臨時票據code參數;
2. 經過code參數加上AppID和AppSecret等,經過API換取access_token;
3. 經過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操做。web
Laravel Socialite簡介後端
除了傳統的基於表單的登陸認證外,Laravel 還能夠經過 Laravel Socialite 提供 OAuth 認證,目前支持的認證驅動包括 Facebook、Twitter、Google、LinkedIn、GitHub 和 Bitbucket。微信
安裝相關依賴app
相關配置composer
1. 設置app/config.php
添加providers:
添加aliases:
2. 配置config/services.php
3. 設置app/Providers/EventServiceProvider.php
添加事件監聽
5. 編寫WeixinController
訪問auth/weixin,得到返回數據。
1. 微信受權回調域不符(redirect_uri不符),參見下面規範:
2. 執行過程當中出現一下錯誤:
解決:
經過stateless()方法禁止會話狀態驗證
其餘第三方登陸在此不作贅述。