python如何實現(xiàn)網(wǎng)站微信登錄-創(chuàng)新互聯(lián)

這篇文章主要介紹了python如何實現(xiàn)網(wǎng)站微信登錄,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

十余年的岳西網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整岳西建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“岳西網(wǎng)站設(shè)計”,“岳西網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

根據(jù)需求選擇相應(yīng)的登錄方式

python實現(xiàn)網(wǎng)站微信登錄的示例代碼

微信現(xiàn)在提供兩種登錄接入方式

  • 移動應(yīng)用微信登錄

  • 網(wǎng)站應(yīng)用微信登錄

這里我們使用的是網(wǎng)站應(yīng)用微信登錄

按照 官方流程

1 注冊并通過開放平臺開發(fā)者資質(zhì)認證

注冊微信開放平臺帳號后,在帳號中心中填寫開發(fā)者資質(zhì)認證申請,并等待認證通過。

2 創(chuàng)建網(wǎng)站應(yīng)用

通過填寫網(wǎng)站應(yīng)用名稱、簡介和圖標(biāo),以及各平臺下載地址等資料,創(chuàng)建網(wǎng)站應(yīng)用

3 接入微信登錄

在資源中心查閱網(wǎng)站應(yīng)用開發(fā)文檔,開發(fā)接入微信登陸功能,讓用戶可使用微信登錄你的網(wǎng)站應(yīng)用

如果已經(jīng)完成上面的操作,請繼續(xù)往下看

微信網(wǎng)站應(yīng)用微信登錄是基于OAuth3.0協(xié)議標(biāo)準(zhǔn)構(gòu)建的微信OAuth3.0授權(quán)登錄系統(tǒng)。

微信OAuth3.0授權(quán)登錄目前支持authorization_code模式,適用于擁有server端的應(yīng)用授權(quán)。該模式整體流程為:

  1.  第三方發(fā)起微信授權(quán)登錄請求,微信用戶允許授權(quán)第三方應(yīng)用后,微信會拉起應(yīng)用或重定向到第三方網(wǎng)站,并且?guī)鲜跈?quán)臨時票據(jù)code參數(shù);

  2.  通過code參數(shù)加上AppID和AppSecret等,通過API換取access_token;

  3.  通過access_token進行接口調(diào)用,獲取用戶基本數(shù)據(jù)資源或幫助用戶實現(xiàn)基本操作。

具體流程請參考官方文檔,我們這里只說一下python的實現(xiàn)方法。官方文檔地址 點這里

參考python-instagram 我寫了一個python-weixin (https://github.com/zongxiao/python-weixin)一個微信python SDK

不過現(xiàn)在還只有微信接入、獲取用戶信息、 刷新refresh_token 等簡單功能

首先 需要把代碼clone到本地

然后執(zhí)行

python setup.py install

使用方式非常簡單

from weixin.client import WeixinAPI

APP_ID = 'your app id'
APP_SECRET = 'your app secret'
REDIRECT_URI = 'http://your_domain.com/redirect_uri' # 這里一定要注意 地址一定要加上http/https

scope = ("snsapi_login", )
api = WeixinAPI(appid=APP_ID,
      app_secret=APP_SECRET,
      redirect_uri=REDIRECT_URI)

authorize_url = api.get_authorize_url(scope=scope)

現(xiàn)在將

authorize_url 地址在瀏覽器打開, 將跳轉(zhuǎn)到微信登錄頁面,使用手機掃碼登錄后將跳轉(zhuǎn)到
http://your_domain.com/redirect_uri?code=CODE&state=STATE 頁面

現(xiàn)在我們就可以使用code 來獲取登錄的 access_token

access_token = api.exchange_code_for_access_token(code=code)

access_token 信息為

{ 
"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE" 
}
參數(shù)說明
access_token接口調(diào)用憑證(有效期目前為2個小時)
expires_inaccess_token接口調(diào)用憑證超時時間,單位(秒)
refresh_token用戶刷新access_token(有效期目前為30天)
openid授權(quán)用戶唯一標(biāo)識
scope用戶授權(quán)的作用域,使用逗號(,)分隔

獲取access_token后,就可以進行接口調(diào)用,有以下前提:

  1.  access_token有效且未超時;

  2.  微信用戶已授權(quán)給第三方應(yīng)用帳號相應(yīng)接口作用域(scope)。

對于接口作用域(scope),能調(diào)用的接口有以下:

授權(quán)作用域(scope)接口接口說明
snsapi_base/sns/oauth3/access_token通過code換取access_token、refresh_token和已授權(quán)scope
/sns/oauth3/refresh_token刷新或續(xù)期access_token使用
/sns/auth檢查access_token有效性
snsapi_userinfo/sns/userinfo獲取用戶個人信息
api = WeixinAPI(appid=APP_ID,
    app_secret=APP_SECRET,
    redirect_uri=REDIRECT_URI)

# 刷新或續(xù)期access_token使用
refresh_token = api.exchange_refresh_token_for_access_token(refresh_token=auth_info['refresh_token'])

api = WeixinAPI(access_token=auth_info['access_token'])

# 獲取用戶個人信息
user = api.user(openid=auth_info['openid'])

# 檢查access_token有效性
v = api.validate_token(openid=auth_info['openid'])

現(xiàn)在就微信登錄就完成了

下面是用 flask 實現(xiàn)的完整的例子

from flask import Flask
from flask import Markup
from flask import redirect
from flask import request
from flask import jsonify

from weixin.client import WeixinAPI
from weixin.oauth3 import OAuth3AuthExchangeError

app = Flask(__name__)

APP_ID = 'appid'
APP_SECRET = 'app secret'
REDIRECT_URI = 'http://localhost.com/authorization'


@app.route("/authorization")
def authorization():
 code = request.args.get('code')
 api = WeixinAPI(appid=APP_ID,
     app_secret=APP_SECRET,
     redirect_uri=REDIRECT_URI)
 auth_info = api.exchange_code_for_access_token(code=code)
 api = WeixinAPI(access_token=auth_info['access_token'])
 resp = api.user(openid=auth_info['openid'])
 return jsonify(resp)


@app.route("/login")
def login():
 api = WeixinAPI(appid=APP_ID,
     app_secret=APP_SECRET,
     redirect_uri=REDIRECT_URI)
 redirect_uri = api.get_authorize_login_url(scope=("snsapi_login",))
 return redirect(redirect_uri)


@app.route("/")
def hello():
 return Markup('<a href="%s" rel="external nofollow" >weixin login!</a>') % '/login'

if __name__ == "__main__":
 app.run(debug=True)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“python如何實現(xiàn)網(wǎng)站微信登錄”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:python如何實現(xiàn)網(wǎng)站微信登錄-創(chuàng)新互聯(lián)
鏈接URL:http://www.muchs.cn/article36/dsjcpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站App設(shè)計、商城網(wǎng)站、虛擬主機、網(wǎng)頁設(shè)計公司、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)