Skip to content

Commit f30bed3

Browse files
author
Your Name
committed
Stripe In Practice Course
1 parent ece8168 commit f30bed3

File tree

4 files changed

+29
-3
lines changed

4 files changed

+29
-3
lines changed

server/.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ STRIPE_SECRET_KEY="sk_test_LSRPmRv6x5iR5L6GfidWZXXM00EiAR0pFK"
22
STRIPE_PUBLIC_KEY="pk_test_MgTu31Ar1S9gLWcmCqnelpyD"
33
SERVICE_ACCOUNT_FILE_NAME="stripe-course-recording-ebbda60a91a3.json"
44
PROJECT_ID="stripe-course-recording"
5+
FIRESTORE_DATABASE_URL="https://stripe-course-recording.firebaseio.com"

server/auth.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
3+
const admin = require('firebase-admin');
4+
5+
const serviceAccountPath = `./service-accounts/${process.env.SERVICE_ACCOUNT_FILE_NAME}`;
6+
7+
admin.initializeApp({
8+
credential: admin.credential.cert(serviceAccountPath),
9+
databaseURL:process.env.FIRESTORE_DATABASE_URL
10+
});
11+
12+
13+
export const auth = admin.auth();

server/checkout.route.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
77
interface RequestInfo {
88
courseId: string;
99
callbackUrl: string;
10+
userId:string;
1011
}
1112

1213
export async function createCheckoutSession(req: Request, res: Response) {
@@ -15,10 +16,11 @@ export async function createCheckoutSession(req: Request, res: Response) {
1516

1617
const info: RequestInfo = {
1718
courseId: req.body.courseId,
18-
callbackUrl: req.body.callbackUrl
19+
callbackUrl: req.body.callbackUrl,
20+
userId: req["uid"]
1921
};
2022

21-
console.log('Purchasing course with id: ', info.courseId);
23+
console.log('Purchasing course with id: ', info);
2224

2325
const purchaseSession = await db.collection('purchaseSessions').doc();
2426

server/get-user.middleware.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11

22
import {Request, Response, NextFunction} from 'express';
3+
import {auth} from './auth';
34

45

56
export function getUserMiddleware(req: Request, res: Response, next: NextFunction) {
67

78
const jwt = req.headers.authorization;
89

910
if (jwt) {
10-
11+
auth.verifyIdToken(jwt)
12+
.then(jwtPayload => {
13+
req["uid"] = jwtPayload.uid;
14+
next();
15+
})
16+
.catch(error => {
17+
const message = 'Error verifying Firebase Id token';
18+
console.log(message, error);
19+
res.status(403).json({message});
20+
});
1121
}
1222
else {
1323
next();

0 commit comments

Comments
 (0)