最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年09月18日 09:23:27   作者:cacique  
這篇文章主要介紹了python實(shí)現(xiàn)網(wǎng)站微信登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

最近微信登錄開(kāi)放公測(cè),為了方便微信用戶(hù)使用,我們的產(chǎn)品也決定加上微信登錄功能,然后就有了這篇筆記。

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

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

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

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

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

按照 官方流程

1 注冊(cè)并通過(guò)開(kāi)放平臺(tái)開(kāi)發(fā)者資質(zhì)認(rèn)證

注冊(cè)微信開(kāi)放平臺(tái)帳號(hào)后,在帳號(hào)中心中填寫(xiě)開(kāi)發(fā)者資質(zhì)認(rèn)證申請(qǐng),并等待認(rèn)證通過(guò)。

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

通過(guò)填寫(xiě)網(wǎng)站應(yīng)用名稱(chēng)、簡(jiǎn)介和圖標(biāo),以及各平臺(tái)下載地址等資料,創(chuàng)建網(wǎng)站應(yīng)用

3 接入微信登錄

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

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

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

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

  1.  第三方發(fā)起微信授權(quán)登錄請(qǐng)求,微信用戶(hù)允許授權(quán)第三方應(yīng)用后,微信會(huì)拉起應(yīng)用或重定向到第三方網(wǎng)站,并且?guī)鲜跈?quán)臨時(shí)票據(jù)code參數(shù);
  2.  通過(guò)code參數(shù)加上AppID和AppSecret等,通過(guò)API換取access_token;
  3.  通過(guò)access_token進(jìn)行接口調(diào)用,獲取用戶(hù)基本數(shù)據(jù)資源或幫助用戶(hù)實(shí)現(xiàn)基本操作。

具體流程請(qǐng)參考官方文檔,我們這里只說(shuō)一下python的實(shí)現(xiàn)方法。官方文檔地址 點(diǎn)這里

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

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

首先 需要把代碼clone到本地

然后執(zhí)行

python setup.py install

使用方式非常簡(jiǎn)單

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 地址在瀏覽器打開(kāi), 將跳轉(zhuǎn)到微信登錄頁(yè)面,使用手機(jī)掃碼登錄后將跳轉(zhuǎn)到
http://your_domain.com/redirect_uri?code=CODE&state=STATE 頁(yè)面

現(xiàn)在我們就可以使用code 來(lái)獲取登錄的 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ù) 說(shuō)明
access_token 接口調(diào)用憑證(有效期目前為2個(gè)小時(shí))
expires_in access_token接口調(diào)用憑證超時(shí)時(shí)間,單位(秒)
refresh_token 用戶(hù)刷新access_token(有效期目前為30天)
openid 授權(quán)用戶(hù)唯一標(biāo)識(shí)
scope 用戶(hù)授權(quán)的作用域,使用逗號(hào)(,)分隔

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

  1.  access_token有效且未超時(shí);
  2.  微信用戶(hù)已授權(quán)給第三方應(yīng)用帳號(hào)相應(yīng)接口作用域(scope)。

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

授權(quán)作用域(scope) 接口 接口說(shuō)明
snsapi_base /sns/oauth2/access_token 通過(guò)code換取access_token、refresh_token和已授權(quán)scope
/sns/oauth2/refresh_token 刷新或續(xù)期access_token使用
/sns/auth 檢查access_token有效性
snsapi_userinfo /sns/userinfo 獲取用戶(hù)個(gè)人信息

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'])

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

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

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

下面是用 flask 實(shí)現(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.oauth2 import OAuth2AuthExchangeError

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)

參考鏈接:

微信網(wǎng)站應(yīng)用接入文檔 

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

python-weixin github 地址  https://github.com/zongxiao/python-weixin

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中面向?qū)ο蟮淖⒁恻c(diǎn)概述總結(jié)

    python中面向?qū)ο蟮淖⒁恻c(diǎn)概述總結(jié)

    大家好,本篇文章主要講的是python中面向?qū)ο蟮淖⒁恻c(diǎn)概述總結(jié),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-02-02
  • python使用pygame創(chuàng)建精靈Sprite

    python使用pygame創(chuàng)建精靈Sprite

    這篇文章主要介紹了使用Pygame創(chuàng)建精靈Sprite,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python爬蟲(chóng)包BeautifulSoup實(shí)例(三)

    Python爬蟲(chóng)包BeautifulSoup實(shí)例(三)

    這篇文章主要為大家詳細(xì)介紹了Python爬蟲(chóng)包BeautifulSoup實(shí)例,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2018-06-06
  • 對(duì)Python協(xié)程之異步同步的區(qū)別詳解

    對(duì)Python協(xié)程之異步同步的區(qū)別詳解

    今天小編就為大家分享一篇對(duì)Python協(xié)程之異步同步的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 使用Python實(shí)現(xiàn)畫(huà)一個(gè)中國(guó)地圖

    使用Python實(shí)現(xiàn)畫(huà)一個(gè)中國(guó)地圖

    今天小編就為大家分享一篇使用Python實(shí)現(xiàn)畫(huà)一個(gè)中國(guó)地圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python callable()函數(shù)用法實(shí)例分析

    Python callable()函數(shù)用法實(shí)例分析

    這篇文章主要介紹了Python callable()函數(shù)用法,結(jié)合實(shí)例形式分析了Python callable()函數(shù)的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-03-03
  • Python代碼解決RenderView窗口not found問(wèn)題

    Python代碼解決RenderView窗口not found問(wèn)題

    這篇文章主要介紹了Python代碼解決RenderView窗口not found問(wèn)題,需要的朋友可以參考下
    2016-08-08
  • VsCode終端激活anconda環(huán)境問(wèn)題解決

    VsCode終端激活anconda環(huán)境問(wèn)題解決

    本文主要介紹了VsCode終端激活anconda環(huán)境問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • 使用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單ping?pong服務(wù)器

    使用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單ping?pong服務(wù)器

    這篇文章主要為大家介紹了使用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單ping?pong服務(wù)器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Tensorflow中批量讀取數(shù)據(jù)的案列分析及TFRecord文件的打包與讀取

    Tensorflow中批量讀取數(shù)據(jù)的案列分析及TFRecord文件的打包與讀取

    這篇文章主要介紹了Tensorflow中批量讀取數(shù)據(jù)的案列分析及TFRecord文件的打包與讀取,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

桑日县| 石城县| 普定县| 闽侯县| 错那县| 迭部县| 海伦市| 尤溪县| 文成县| 新巴尔虎右旗| 开封市| 黄冈市| 昌邑市| 和平县| 衡阳县| 郎溪县| 桂阳县| 通化县| 方正县| 股票| 泰宁县| 柏乡县| 永年县| 通州区| 新绛县| 临夏市| 洛隆县| 乐昌市| 重庆市| 霍林郭勒市| 陆川县| 望奎县| 麦盖提县| 临城县| 积石山| 八宿县| 咸丰县| 绥德县| 武穴市| 东丽区| 浦东新区|