返回介绍

微信 OAuth 网页授权接入

发布于 2023-06-27 19:35:15 字数 2985 浏览 0 评论 0 收藏 0

公众号 OAuth 网页授权接入

class wechatpy.oauth.WeChatOAuth(app_id, secret, redirect_uri, scope='snsapi_base', state='')[源代码]
class wechatpy.component.ComponentOAuth(app_id, component_appid=None, component_access_token=None, redirect_uri=None, scope='snsapi_base', state='', component=None)[源代码]

下述代码使用 Flask. 框架作为示例

from flask import Flask, request, redirect, jsonify, session, abort
from wechatpy.enterprise import WeChatClient
import functools


app = Flask(__name__)

CORP_ID = 'wxc480d56d906bc121'
SECRET = '79BAUPuQ0zcytpz7f5vouAFPwnWDK0XePjKeWsY7Wo-cpAZvYYAy0OH-PH0-6OUN'

app.secret_key = 'key'

client = WeChatClient(
    CORP_ID,
    SECRET
)


def oauth(method):
    @functools.wraps(method)
    def warpper(*args, **kwargs):
        code = request.args.get('code', None)
        url = client.oauth.authorize_url(request.url)

        if code:
            try:
                user_info = client.oauth.get_user_info(code)
            except Exception as e:
                print e.errmsg, e.errcode
                # 这里需要处理请求里包含的 code 无效的情况
                abort(403)
            else:
                session['user_info'] = user_info
        else:
            return redirect(url)

        return method(*args, **kwargs)
    return warpper


@app.route('/')
@oauth
def index():
    user_info = session.get('user_info')
    return jsonify(data=user_info)


if __name__ == '__main__':
    app.run(
        debug=True,
        port=9000,
    )
class wechatpy.enterprise.client.api.oauth.WeChatOAuth(client=None)[源代码]
authorize_url(redirect_uri, state=None)[源代码]

构造网页授权链接 详情请参考 https://work.weixin.qq.com/api/doc

参数
  • redirect_uri – 授权后重定向的回调链接地址

  • state – 重定向后会带上 state 参数

返回

返回的 JSON 数据包

get_user_info(code)[源代码]

获取访问用户身份 详情请参考 https://work.weixin.qq.com/api/doc

参数

code – 通过成员授权获取到的code

返回

返回的 JSON 数据包

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文