oauth/client.py
changeset 10 50b532f5e6cb
parent 5 4407b131a70e
child 32 eb9e83610c99
equal deleted inserted replaced
9:fdbc47f06361 10:50b532f5e6cb
    31             callback=url_for('authorized', next=next_url, _external=True)
    31             callback=url_for('authorized', next=next_url, _external=True)
    32         )
    32         )
    33     if 'me' not in session:
    33     if 'me' not in session:
    34         resp = remote.get('user/InfoComplete')
    34         resp = remote.get('user/InfoComplete')
    35         print("authcode resp data: "+str(resp.data))
    35         print("authcode resp data: "+str(resp.data))
    36         me = resp.data.get("username", "")
    36         me = resp.data.get("displayName", "")
    37         session["me"] = me
    37         session["me"] = me
       
    38         id = resp.data.get("id", "")
       
    39         session["me_id"] = id
    38     if 'remote_oauth_clientcredentials' not in session:
    40     if 'remote_oauth_clientcredentials' not in session:
    39         auth_string = bytes(app.config["CLIENT_ID"]+':'+app.config['CLIENT_SECRET'], "utf-8")
    41         auth_string = bytes(app.config["CLIENT_ID"]+':'+app.config['CLIENT_SECRET'], "utf-8")
    40         auth_code = base64.b64encode(auth_string).decode("utf-8")
    42         auth_code = base64.b64encode(auth_string).decode("utf-8")
    41         resp = requests.post(app.config["ACCESS_TOKEN_URL"]+"?grant_type=client_credentials&scope=basic", data={}, headers={
    43         resp = requests.post(app.config["ACCESS_TOKEN_URL"]+"?grant_type=client_credentials&scope=basic", data={}, headers={
    42             'Authorization': 'Basic %s' % auth_code,
    44             'Authorization': 'Basic %s' % auth_code,
    49         session['remote_oauth_clientcredentials'] = (json.loads(resp.text)['access_token'], '')
    51         session['remote_oauth_clientcredentials'] = (json.loads(resp.text)['access_token'], '')
    50         resp = remote.get('user/InfoComplete')
    52         resp = remote.get('user/InfoComplete')
    51         print("clientcredentials resp data: "+str(resp.data))
    53         print("clientcredentials resp data: "+str(resp.data))
    52         server = resp.data.get("username", "")
    54         server = resp.data.get("username", "")
    53         session["server"] = server
    55         session["server"] = server
    54     return render_template('client/index.html', current_username=session["me"], oauth_username=session["server"])
    56     return render_template('client/index.html', current_user_id=session["me_id"], current_username=session["me"], oauth_username=session["server"])
    55 
    57 
    56 @app.route('/renkan-request')
    58 @app.route('/renkan-request')
    57 def renkan_request():
    59 def renkan_request():
    58     if 'remote_oauth_clientcredentials' in session:
    60     if 'remote_oauth_clientcredentials' in session:
    59         resp = requests.post(
    61         resp = requests.post(
    60             app.config["CREATE_RENKAN_ENDPOINT"]+"?act_as="+session.get("me", "anonymous"), 
    62             app.config["CREATE_RENKAN_ENDPOINT"]+"?act_as="+str(session.get("me_id", "anonymous")), 
    61             {"title": "RENKAN_FROM_GED"},
    63             {"title": "RENKAN_FROM_GED"},
    62             headers={
    64             headers={
    63                 'Authorization': 'Bearer %s' % session['remote_oauth_clientcredentials'][0],
    65                 'Authorization': 'Bearer %s' % session['remote_oauth_clientcredentials'][0],
    64                 'renkan-act-as': session.get("me", "anonymous")
    66                 'renkan-act-as': session.get("me_id", "anonymous")
    65             }
    67             }
    66         )
    68         )
    67         print(resp.text)
    69         print(resp.text)
    68     return redirect('/')
    70     return redirect('/')
    69 
    71