1. 程式人生 > >小程式實現第三方登入,後臺採用的是laravel框架

小程式實現第三方登入,後臺採用的是laravel框架

在本次小程式開發的過程中,踩了比較多的坑,也受到了很多開原始碼、技術部落格的啟迪,一直想找時間寫一篇博文,總結一下小程式實現第三方登入的流程。文章為本人原創,如有不同見解可互相交流。 1、何為小程式的第三方登入? 用過小程式的人都知道,很多小程式在使用者進入的時候會詢問使用者“是否允許獲得你的公開資訊(暱稱、頭像等)”。點選“允許”的話,就以微信賬戶的身份登入了小程式。另外一種情況是手機和驗證碼的方式登入。今天我們要討論的是第三種登入方式,即第三方登入。許多app在入駐小程式之前已經有了大量的註冊使用者,註冊和認證方式多為郵箱+密碼、使用者名稱+密碼。為保證使用者體驗和使用流程的連續性,app開發者會選擇保留第三方登入的方式,詳見“豆瓣評分”小程式。 官方給出的第三方登入文件很複雜,如下圖所示,我的工程並未完全參考這個文件。 2、何為laravel框架? Laravel是一套簡潔、優雅的PHP Web開發框架。在開發小程式之前,我們已經有了一套基於laravel框架開發的網站,框架中包含了從前端到後臺的所有功能。小程式的開發是在此基礎之上進行的。laravel中自帶現成的登入、註冊體系,應用起來十分方便。 下面進入正題,如何利用已有的擁有完善功能(包括登入、註冊)的基於laravel框架的網站實現第三方認證。 請移步下面的連結,學習一下如何利用Passport實現laravel框架的api授權: 具體做法是:
1、簡單瞭解一下OAuth2.0認證機制,基於laravel框架的第三方登入是基於該機制的。 2、使用Composer依賴包管理器安裝Passport,使laravel具備api認證的功能 3、配置好後,在工程目錄下執行客戶端建立指令 php artisan passport:client,依次輸入客戶端資訊,框架會將資訊儲存至client的資料表中 4、檢視記錄有client資訊的資料表,將client_id和client_secret欄位的內容拷貝下來,後面會用 5、利用小程式提供的wx.request向後臺發POST請求,data中配置的資訊username對應登入的唯一識別字段,password是登入密碼,grant_type是‘password’表示授權認證模式為密碼模式(詳見OAuth2.0認證機制),client_id和client_secret是剛才在laravel中註冊的客戶端資訊,scope與請求域相關,在此不做詳細解釋,可見文件
http://laravelacademy.org/post/5993.html 6、請求發出後便可得到laravel後臺返回的資訊,其中access_token很重要,後續發資料請求需要攜帶著token獲得訪問權。expires_in是token的有效時間,以秒為單位,token_type是Bearer,後續請求需要寫在token之前宣告。 7、後續資料請求示例(GET請求) 基本流程就是這樣,谷歌百度都沒有搜到小程式與laravel框架結合的例項,踩過不少坑。以前對登入認證機制也不是很瞭解,感謝學姐的幫助,帶我入門。再說一句,Postman好用,用於程式聯調好極了。