Setting Up Flask

Let's create a flask application. We will use flask-OpenID connect 

$ pip install Flask-OIDC
from flask import Flask, g,redirect,render_template
app = Flask(__name__)
import os

app.secret_key = 'weallwilldieoneday'
app.config['OIDC_CLIENT_SECRETS'] = 'oidc-config.json'
app.config['OIDC_COOKIE_SECURE'] = False
from flask_oidc import OpenIDConnect
oidc = OpenIDConnect(app)

photos = os.path.join('static','photos')
app.config['UPLOAD_FOLDER'] = photos

@app.route('/')
def welcome():
    print(oidc.user_loggedin)
    logo = os.path.join(app.config['UPLOAD_FOLDER'],'linkedin-signin.png')
    return render_template('./welcome.html', logo_image=logo)

@app.route('/login')
@oidc.require_login
def loginwithlinkdin():
    print(oidc.user_loggedin) #this will print true if the user is logged in
    name = oidc.user_getfield('name') #getting name from linkedin
    email = oidc.user_getfield('email') #getting email from linkedin
    msg= "welcome "+name+" your email is "+ email + '<a href="/logout">Logout</a>'
    return (msg)
    
@app.route('/logout')
def logout():
    """Performs local logout by removing the session cookie."""
    oidc.logout() 
    return 'Hi, you have been logged out! <a href="/">Return</a>'

Add oidc-config.json in the root directory 

{
  "web": {
    "client_id": "whoamionlinkdin",
    "auth_uri": "http://localhost:8080/auth/realms/whoamionlinkdin/protocol/openid-connect/auth",
    "token_uri": "http://localhost:8080/auth/realms/whoamionlinkdin/protocol/openid-connect/token",
    "issuer": "http://localhost:8080/auth/realms/whoamionlinkdin",
    "userinfo_uri": "http://localhost:8080/auth/realms/whoamionlinkdin/protocol/openid-connect/userinfo",
    "redirect_uris": [
      "http://localhost:5000/oidc/callback"
    ]
  }
}

 

🥳🥳 All done now run flask application 

Discussion

4

0