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
4
