通过Python进行服务连接

时间:2017-08-02 15:45:07

标签: python python-3.x auth0

我是pyhton开发的新手,并尝试使以下示例有效。

以下代码用于服务身份验证。每当我通过浏览器调用localhost:3000/callback时,我都会收到code错误,因为它为空。

当我在auth0上创建网页时,它会提供所有必需的信息,然后使源代码可供使用。但是,代码不包括在内。我想知道需要插入什么。

token = get_token.authorization_code(AUTH0_CLIENT_ID,
                                         AUTH0_CLIENT_SECRET, code, 
                                         AUTH0_CALLBACK_URL)
  

auth0.v3.exceptions.Auth0Error:invalid_request:缺少必需的   参数:代码

.ENV

AUTH0_CLIENT_ID=xxxxxxxxxxx
AUTH0_DOMAIN=xxxxxx.auth0.com
AUTH0_CLIENT_SECRET=v-xxxxx2yVHntpn01RoEMMxhj6RLxxxxxxxxxx
AUTH0_CALLBACK_URL=http://localhost:3000/callback
API_IDENTIFIER={API_AUDIENCE}

server.py

"""Python Flask WebApp Auth0 integration example"""
from functools import wraps
from urllib.parse import urlparse
from os import environ as env, path
import json

from auth0.v3.authentication import GetToken
from auth0.v3.authentication import Users
from dotenv import load_dotenv
from flask import Flask
from flask import redirect
from flask import render_template
from flask import request
from flask import send_from_directory
from flask import session

import constants

load_dotenv(path.join(path.dirname(__file__), ".env"))
AUTH0_CALLBACK_URL = env[constants.AUTH0_CALLBACK_URL]
AUTH0_CLIENT_ID = env[constants.AUTH0_CLIENT_ID]
AUTH0_CLIENT_SECRET = env[constants.AUTH0_CLIENT_SECRET]
AUTH0_DOMAIN = env[constants.AUTH0_DOMAIN]

@APP.route('/callback')
def callback_handling():
    code = request.args.get(constants.CODE_KEY)
    get_token = GetToken(AUTH0_DOMAIN)
    auth0_users = Users(AUTH0_DOMAIN)
    #Receive exception
    token = get_token.authorization_code(AUTH0_CLIENT_ID,
                                         AUTH0_CLIENT_SECRET, code, AUTH0_CALLBACK_URL)
    user_info = auth0_users.userinfo(token['access_token'])
    session[constants.PROFILE_KEY] = json.loads(user_info)
    return redirect('/dashboard')


if __name__ == "__main__":
    APP.run(host='0.0.0.0', port=env.get('PORT', 3000))

0 个答案:

没有答案