Skip to content

Commit 93fde0d

Browse files
committed
✨ Authenticate with firebase
1 parent df48435 commit 93fde0d

File tree

6 files changed

+23
-8
lines changed

6 files changed

+23
-8
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ yarn-error.log
1010
firebase-debug.log
1111

1212
spotify.config.js
13+
firebase.config.js
1314
.firebaserc
1415
service-account.*

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"@polymer/iron-icons": "^3.0.0-pre.12",
1010
"@polymer/paper-button": "^3.0.0-pre.12",
1111
"@polymer/paper-item": "^3.0.0-pre.12",
12+
"firebase": "^4.12.1",
1213
"fit-html": "^0.5.4",
1314
"qs": "^6.5.1",
1415
"redux-devtools-extension": "^2.13.2",
@@ -18,7 +19,6 @@
1819
"devDependencies": {
1920
"chokidar": "^2.0.3",
2021
"connect-history-api-fallback": "^1.5.0",
21-
"firebase": "^4.12.1",
2222
"firebase-tools": "^3.17.7",
2323
"rollup": "^0.57.1",
2424
"rollup-plugin-browsersync": "^0.2.6",

rollup.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ const frontendConfig = {
6060
ui: false
6161
}) : null,
6262
].filter((plugin) => plugin !== null),
63-
//onwarn: err => console.error(err.toString()),
63+
onwarn: err => console.error(err.toString()),
6464
watch: {
6565
include: 'src/**/*'
6666
},

src/sagas/auth.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
} from "../util/spotify";
1212
import {authInitFinished} from "../actions/auth";
1313
import {ExchangeCodeResult} from "../../functions/src";
14+
import firebase from "../util/firebase";
1415

1516
const OAUTH_STATE = 'POPOPO';
1617

@@ -45,7 +46,9 @@ function* exchangeCode() {
4546
refreshToken,
4647
}: ExchangeCodeResult = yield spotifyExchangeCode(code, window.location.origin);
4748

48-
storeAuthData(accessToken, firebaseToken, expiresIn, refreshToken);
49+
yield firebase.auth!().signInWithCustomToken(firebaseToken);
50+
51+
storeAuthData(accessToken, expiresIn, refreshToken);
4952
return true;
5053
}
5154

src/util/firebase.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import firebase from '@firebase/app';
2+
import '@firebase/auth';
3+
import '@firebase/database';
4+
5+
import firebaseConfig from '../../firebase.config.js';
6+
7+
const app = firebase.initializeApp(firebaseConfig)!;
8+
export default app;
9+
10+
export {
11+
app as firebase,
12+
firebase as firebaseNS,
13+
};

src/util/spotify.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,9 @@ export const SCOPES = [
2525
'user-library-read',
2626
];
2727

28-
export function storeAuthData(accessToken: string, firebaseToken: string, expiresIn: number, refreshToken: string) {
28+
export function storeAuthData(accessToken: string, expiresIn: number, refreshToken: string) {
2929
localStorage[LOCAL_STORAGE_KEY] = JSON.stringify({
3030
accessToken,
31-
firebaseToken,
3231
expiresAt: Date.now() + (expiresIn * 1000),
3332
refreshToken,
3433
} as SpotifyAuthStorage);
@@ -46,7 +45,6 @@ export class UserNotLoggedInError extends Error {
4645

4746
export interface SpotifyAuthStorage {
4847
accessToken: string;
49-
firebaseToken: string;
5048
expiresAt: number;
5149
refreshToken: string;
5250
}
@@ -84,7 +82,7 @@ export async function requireAccessToken() {
8482
throw new UserNotLoggedInError();
8583
}
8684

87-
const { accessToken, firebaseToken, expiresAt, refreshToken }: SpotifyAuthStorage = JSON.parse(authString);
85+
const { accessToken, expiresAt, refreshToken }: SpotifyAuthStorage = JSON.parse(authString);
8886

8987
if (Date.now() <= expiresAt) {
9088
return accessToken;
@@ -97,7 +95,7 @@ export async function requireAccessToken() {
9795
throw new UserNotLoggedInError();
9896
}
9997

100-
storeAuthData(newAccessToken, firebaseToken, expiresIn, refreshToken);
98+
storeAuthData(newAccessToken, expiresIn, refreshToken);
10199
return newAccessToken;
102100
}
103101

0 commit comments

Comments
 (0)