解決方法是這樣的,前端用戶點擊我要用微信登陸按鈕->此時請求應用 API 接口,咱們叫他小張把,小張作啥呢?就是給你生成跳轉收到微信的 URL,而後,前端拿到 url 後 location.href=xxxx 進行跳轉,而後微信跳轉回來後不是帶了 code 麼?你如今應該卡在 code 這兒了吧,該怎麼作呢?記得生成小張這個接口麼?前端請求小張的時候啊,小張須要讓你帶上一個叫作 redirect_uri 或者其餘名字的參數,這個參數就是微信跳轉回來跳轉的接口,而後,你的頁面就拿到了 code 了,這個時候,讓寫接口的哥們兒給你寫一個叫作小王的接口,小王作什麼呢?小王就等你拿 code,他去根據 code 獲取大家這邊的用戶信息,若是沒有,他能夠無私地自動建立一個,也能夠告訴你用戶沒有在系統中註冊,你手動告訴用戶進行註冊或者綁定大家的帳號,完了
好了,說下小張這個接口,這個接入咱們可讓他變得更牛逼點,作啥呢?小張接收咱們應用的 redirect_uri,而後小張生成跳轉微信的 uri 的時候優雅一點,假設咱們應用的 hostname 是 baidusb.cn ,前端想要收到 code 的 url 是 baidusb.com/wechat/code,以前說的是讓微信直接跳轉 baidusb.com/wechat/code,如今不這樣作了,讓咱們應用來跳轉,好比咱們的應用也就是服務端的小夥伴寫了一個固定的接口叫作 api.baidusb.com/wechat/code/callback,微信先跳這個 URL,而後這裏作 code 和 state 校驗,完事兒了以後再跳到 baidusb.com/wechat/code 這兒來,baidusb.com/wechat/code,這樣不少個子應用均可以用啦,固然,這只是其中一種比較好的辦法前端