Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.

Commit 04c937a

Browse files
committed
Updated screenshots for README.md. Bumped sample sdk versions and adding logs to Authorization and Device flow sample apps.
1 parent 38426bb commit 04c937a

File tree

7 files changed

+100
-96
lines changed

7 files changed

+100
-96
lines changed
-171 KB
Loading

samples/authorization-code-flow/node/server.js

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,27 @@ const authClient = new OAuthContext(config);
3232

3333
// Home route
3434
app.get('/', (req,res) => {
35-
if (req.session.token) {
35+
if (req.session.token) {
3636
res.redirect("/dashboard");
3737
} else {
3838
res.render('index')
3939
}
4040
});
4141
app.get('/login', (req, res) => {
42-
authClient.authenticate().then(url => {
43-
res.redirect(url);
42+
authClient.authenticate().then((url) => {
43+
console.log(`("======== Authentication redirect to: \n ${url}`);
44+
res.redirect(url);
4445
}).catch(error => {
45-
res.send(error);
46+
console.log(`There was an error with the authentication process:`, error);
47+
res.send(error);
4648
})
4749
})
4850

4951
app.get(process.env.REDIRECT_URI_ROUTE, (req, res) => {
5052
authClient.getToken(req.url).then(token => {
5153
token.expiry = new Date().getTime() + (token.expires_in * 1000);
54+
console.log("======== Token details:");
55+
console.log(token);
5256
req.session.token = token;
5357
res.redirect('/dashboard');
5458
}).catch(error => {
@@ -59,27 +63,38 @@ app.get(process.env.REDIRECT_URI_ROUTE, (req, res) => {
5963

6064
app.get('/dashboard', (req, res) => {
6165
if(req.session.token){
66+
console.log('======== Requesting userInfo claims using valid token');
6267
authClient.userInfo(req.session.token)
6368
.then((response) => {
6469
res.render('dashboard', {userInfo :response.response});
6570
}).catch((err) => {
6671
res.json(err);
6772
});
6873
} else {
69-
console.log('no token')
74+
console.log('======== Current session had no token available.')
7075
res.redirect('/login')
7176
}
7277
})
7378

7479
// delete token from storage when logging out
7580
app.get('/logout', (req, res) => {
81+
if(!req.session.token){
82+
console.log('======== No token stored in session')
83+
res.redirect('/');
84+
return;
85+
}
86+
console.log('======== Attempting to revoke access_token')
7687
authClient.revokeToken(req.session.token, 'access_token')
7788
.then(() => {
78-
delete req.session.token;;
89+
console.log('======== Successfully revoked access token');
90+
delete req.session.token;
91+
console.log('======== Deleteing token session');
92+
console.log('======== Logout session successful');
7993
res.redirect('/');
8094
})
8195
.catch((err) => {
82-
res.send(JSON.parse(JSON.stringify(err)));
96+
console.log('======== Error revoking token: ', err)
97+
res.redirect('/');
8398
})
8499
});
85100

samples/device-flow/node/package-lock.json

Lines changed: 46 additions & 56 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
-54.4 KB
Loading

samples/device-flow/node/server.js

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,13 @@ let deviceFlow = new OAuthContext(config);
5454

5555
const verifyToken = async(req, res, next) => {
5656

57-
await storage.getItem(req.sessionID)
58-
.then((response) => {
59-
if(response){
60-
req.session.token = response;
61-
next();
62-
} else {
63-
res.redirect('/');
64-
}
65-
})
66-
.catch((error) => {
67-
console.log('No token found', error)
57+
const token = await storage.getItem(req.sessionID);
58+
if(token) {
59+
req.session.token = token;
60+
next();
61+
} else {
6862
res.redirect('/');
69-
})
63+
}
7064

7165
}
7266

@@ -75,6 +69,7 @@ app.get('/', (req, res) => {
7569
});
7670

7771
app.get('/authenticated', verifyToken, (req, res) => {
72+
console.log('======== Requesting userInfo claims using valid token');
7873
deviceFlow.userInfo(req.session.token)
7974
.then((response) => {
8075
res.render('authenticated', {message: 'successfully authenticated', userInfo: response.response});
@@ -84,27 +79,37 @@ app.get('/authenticated', verifyToken, (req, res) => {
8479
});
8580

8681
app.get('/authorize', (req, res) => {
82+
console.log('======== Calling device_authorization endpoint')
8783
deviceFlow.authorize()
8884
.then((response) => {
85+
console.log('======== API response: ', response);
8986
res.render('authorize', {
9087
userCoderesponse.user_code,
9188
verificationUriresponse.verification_uri,
9289
qrCoderesponse.verification_uri_complete_qrcode
9390
}, pollToken(response.device_code, req.sessionID));
9491
})
95-
.catch(error => {
96-
console.log(error);
92+
.catch((error)=> {
93+
console.log("========= API error trying to call device_authorization endpoint:", error);
9794
});
9895
});
9996

10097
app.get('/logout', async(req, res) => {
98+
if(!req.session.token){
99+
console.log('======== No token stored in session')
100+
res.redirect('/');
101+
return;
102+
}
103+
console.log('======== Attempting to revoke access_token');
101104
deviceFlow.revokeToken(req.session.token, 'access_token')
102105
.then(async() => {
106+
console.log('======== Successfully revoked access token');
103107
await storage.removeItem(req.sessionID);
108+
console.log('======== Removing token session from storage');
104109
res.redirect(302, '/')
105110
})
106111
.catch((error) => {
107-
console.log('Token revocation error: ', error)
112+
console.log('========= Token revocation error: ', error)
108113
})
109114
})
110115

@@ -119,18 +124,20 @@ io.on('connection', function(socket) {
119124
function pollToken(device_code, sessionID ) {
120125
let deviceCode = device_code;
121126
let timeoutInterval = 5000;
127+
console.log("========= Polling token api");
122128
deviceFlow.pollTokenApi(deviceCode, timeoutInterval)
123129
.then(async(response) => {
124-
await storage.setItem(sessionID, {...response})
125-
.then(() => {
126-
io.emit('success', {auth: '/authenticated'});
127-
})
128-
.catch((error) => {
130+
console.log('========= Token response object: ', response);
131+
try {
132+
await storage.setItem(sessionID, {...response});
133+
await io.emit('success', {auth: '/authenticated'});
134+
} catch (error) {
135+
console.log('========= Error setting sotrage for session');
129136
return error;
130-
})
137+
}
131138
})
132139
.catch((err) => {
133-
console.log('polling error: ', err);
140+
console.log('========= Polling error: ', err);
134141
});
135142
}
136143

-12.3 KB
Loading

samples/implicit-flow/react/src/Components/Dashboard.jsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,6 @@ import React, { Component } from 'react';
22
import { Container, Row, Col, Button, Alert, Spinner } from 'reactstrap';
33
import '../App.css'
44

5-
const keysToDisplay = [
6-
'preferred_username',
7-
'uniqueSecurityName',
8-
'realmName',
9-
'userType',
10-
'tenantId',
11-
]
12-
135
export default class Dashboard extends Component {
146

157
token = {};
@@ -108,11 +100,11 @@ export default class Dashboard extends Component {
108100
<tbody>
109101
{userInfo !== undefined && (
110102
<>
111-
{keysToDisplay.map((keyItem) => {
112-
if(keyItem === 'tenantId') {
103+
{Object.keys(userInfo).map((keyItem) => {
104+
if(keyItem === 'ext') {
113105
return (
114106
<tr key={`key-${keyItem}`}>
115-
<td>{keyItem}</td>
107+
<td>{`tenantId`}</td>
116108
<td>{userInfo.ext.tenantId}</td>
117109
</tr>
118110
)

0 commit comments

Comments
 (0)