Skip to content

Commit b7da498

Browse files
authored
Merge pull request #45 from microsoftgraph/feature/app-only-support
adds support for app only context
2 parents 0fe820d + 45a72f2 commit b7da498

File tree

7 files changed

+175
-702
lines changed

7 files changed

+175
-702
lines changed

helpers/authHelper.js

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,35 @@ export function getAuthUrl() {
2020
* @param {string} code An authorization code returned from a client.
2121
* @param {AcquireTokenCallback} callback The callback function.
2222
*/
23-
export function getTokenFromCode(code, callback) {
23+
export function getTokenFromCode(code) {
2424
const authContext = new AuthenticationContext(adalConfiguration.authority);
25-
authContext.acquireTokenWithAuthorizationCode(
26-
code,
27-
adalConfiguration.redirectUri,
28-
resource,
29-
adalConfiguration.clientID,
30-
adalConfiguration.clientSecret,
31-
(error, token) => {
32-
if (error) callback(error, null);
33-
else callback(null, token);
34-
}
35-
);
25+
return new Promise((resolve, reject) => {
26+
authContext.acquireTokenWithAuthorizationCode(
27+
code,
28+
adalConfiguration.redirectUri,
29+
resource,
30+
adalConfiguration.clientID,
31+
adalConfiguration.clientSecret,
32+
(err, token) => {
33+
if (err) {
34+
reject(err);
35+
} else {
36+
resolve(token);
37+
}
38+
}
39+
);
40+
});
41+
}
42+
43+
export function getAppOnlyToken() {
44+
const authContext = new AuthenticationContext(adalConfiguration.authority.replace('common', adalConfiguration.tenantID));
45+
return new Promise((resolve, reject) => {
46+
authContext.acquireTokenWithClientCredentials(resource, adalConfiguration.clientID, adalConfiguration.clientSecret, (err, token) => {
47+
if (err) {
48+
reject(err);
49+
} else {
50+
resolve(token);
51+
}
52+
});
53+
});
3654
}

helpers/dbHelper.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export function createDatabase() {
1111
const dbExists = fs.existsSync(dbFile);
1212
const db = new sqlite3.Database(dbFile);
1313
const createSubscriptionStatement = 'CREATE TABLE Subscription ('
14-
+ 'UserId TEXT NOT NULL, '
1514
+ 'SubscriptionId TEXT NOT NULL, '
1615
+ 'AccessToken TEXT NOT NULL, '
1716
+ 'Resource TEXT NOT NULL, '
@@ -38,7 +37,6 @@ export function createDatabase() {
3837
export function getSubscription(subscriptionId, callback) {
3938
const db = new sqlite3.Database(dbFile);
4039
const getUserDataStatement = 'SELECT '
41-
+ 'UserId as userId, '
4240
+ 'SubscriptionId as subscriptionId, '
4341
+ 'AccessToken as accessToken, '
4442
+ 'Resource as resource, '
@@ -64,16 +62,15 @@ export function getSubscription(subscriptionId, callback) {
6462
export function saveSubscription(subscriptionData, callback) {
6563
const db = new sqlite3.Database(dbFile);
6664
const insertStatement = 'INSERT INTO Subscription '
67-
+ '(UserId, SubscriptionId, AccessToken, Resource, ChangeType, '
65+
+ '(SubscriptionId, AccessToken, Resource, ChangeType, '
6866
+ 'ClientState, NotificationUrl, SubscriptionExpirationDateTime) '
69-
+ 'VALUES ($userId, $subscriptionId, $accessToken, $resource, $changeType, '
67+
+ 'VALUES ($subscriptionId, $accessToken, $resource, $changeType, '
7068
+ '$clientState, $notificationUrl, $subscriptionExpirationDateTime)';
7169

7270
db.serialize(() => {
7371
db.run(
7472
insertStatement,
7573
{
76-
$userId: subscriptionData.userId,
7774
$subscriptionId: subscriptionData.id,
7875
$accessToken: subscriptionData.accessToken,
7976
$resource: subscriptionData.resource,

0 commit comments

Comments
 (0)