91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何實現網站微信登錄

發布時間:2021-04-06 10:34:30 來源:億速云 閱讀:479 作者:小新 欄目:開發技術

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

根據需求選擇相應的登錄方式

python實現網站微信登錄的示例代碼

微信現在提供兩種登錄接入方式

  • 移動應用微信登錄

  • 網站應用微信登錄

這里我們使用的是網站應用微信登錄

按照 官方流程

1 注冊并通過開放平臺開發者資質認證

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

2 創建網站應用

通過填寫網站應用名稱、簡介和圖標,以及各平臺下載地址等資料,創建網站應用

3 接入微信登錄

在資源中心查閱網站應用開發文檔,開發接入微信登陸功能,讓用戶可使用微信登錄你的網站應用

如果已經完成上面的操作,請繼續往下看

微信網站應用微信登錄是基于OAuth3.0協議標準構建的微信OAuth3.0授權登錄系統。

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

  1.  第三方發起微信授權登錄請求,微信用戶允許授權第三方應用后,微信會拉起應用或重定向到第三方網站,并且帶上授權臨時票據code參數;

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

  3.  通過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操作。

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

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

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

首先 需要把代碼clone到本地

然后執行

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)

現在將

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

現在我們就可以使用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" 
}
參數說明
access_token接口調用憑證(有效期目前為2個小時)
expires_inaccess_token接口調用憑證超時時間,單位(秒)
refresh_token用戶刷新access_token(有效期目前為30天)
openid授權用戶唯一標識
scope用戶授權的作用域,使用逗號(,)分隔

獲取access_token后,就可以進行接口調用,有以下前提:

  1.  access_token有效且未超時;

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

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

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

# 刷新或續期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'])

現在就微信登錄就完成了

下面是用 flask 實現的完整的例子

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如何實現網站微信登錄”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乌珠穆沁旗| 烟台市| 乌什县| 镇雄县| 洛阳市| 梁河县| 连城县| 曲水县| 阿拉善右旗| 咸宁市| 安仁县| 遂溪县| 邛崃市| 象州县| 玉龙| 涿州市| 苏尼特右旗| 瑞安市| 禹州市| 莲花县| 南宫市| 哈巴河县| 宣威市| 诸城市| 松江区| 雷州市| 铁岭县| 宁远县| 太白县| 南和县| 永城市| 隆安县| 横山县| 仪征市| 浙江省| 金寨县| 韶关市| 临湘市| 商水县| 东宁县| 浦江县|