Skip to content

Commit a5c3445

Browse files
authored
Merge pull request #197 from Open-STEM/FranksDev
Change for switching Google Drive requirements
2 parents 8e719b2 + 0a5a8f8 commit a5c3445

File tree

2 files changed

+34
-34
lines changed

2 files changed

+34
-34
lines changed

src/components/navbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1244,7 +1244,7 @@ function NavBar({ layoutref }: NavBarProps) {
12441244
{/** platform infor and connect button*/}
12451245
<div className="flex flex-row items-center gap-4">
12461246
<div className="flex flex-col items-center text-sm text-shark-300">
1247-
{xprID && <span>{`${xprID['platform']}-${xprID['XRPID']}`}</span>}
1247+
{xprID && <span>{`XRP-${xprID['XRPID']}`}</span>}
12481248
</div>
12491249
<button
12501250
id="connectBtn"

src/widgets/login.tsx

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -44,41 +44,33 @@ function Login({ logoutCallback, onSuccess }: LoginProps) {
4444
const driveService = AppMgr.getInstance().driveService;
4545
const loginLogger = logger.child({ module: 'login' });
4646

47-
const SCOPE = 'https://mail.google.com https://www.googleapis.com/auth/drive';
47+
const SCOPE = 'https://www.googleapis.com/auth/drive.file';
4848

4949
const googleSignIn = useGoogleLogin({
5050
scope: SCOPE,
5151
flow: 'auth-code',
5252
onSuccess: (codeResponse) => {
53-
if (codeResponse.scope.split(' ').includes('https://mail.google.com/')) {
54-
setIsLogin(true);
55-
authService.isLogin = true;
56-
new Promise<void>((resolve) => {
57-
authService.setCode(codeResponse.code);
58-
authService.getRefreshToken().then(async (token) => {
59-
setUser((prev) => ({
60-
...prev,
61-
access_token: token.access_token,
62-
refresh_token: token.refresh_token,
63-
expire_in: token.expires_in,
64-
}));
65-
driveService.setAccessToken(token.access_token);
66-
});
67-
68-
if (user.refresh_token) {
69-
// wait for the refresh token to arrive.
70-
resolve();
71-
}
72-
}).then(() => {
73-
setTimeout(() => {
74-
authService.getAccessToken().then((token) => {
75-
loginLogger.debug('Access Token:', token);
76-
});
77-
}, 1000);
53+
setIsLogin(true);
54+
authService.isLogin = true;
55+
new Promise<void>((resolve) => {
56+
authService.setCode(codeResponse.code);
57+
authService.getRefreshToken().then(async (token) => {
58+
setUser((prev) => ({
59+
...prev,
60+
access_token: token.access_token,
61+
refresh_token: token.refresh_token,
62+
expire_in: token.expires_in,
63+
}));
64+
driveService.setAccessToken(token.access_token);
65+
resolve();
7866
});
79-
} else {
80-
loginLogger.error('please give required permissions to the app.');
81-
}
67+
}).then(() => {
68+
setTimeout(() => {
69+
authService.getAccessToken().then((token) => {
70+
loginLogger.debug('Access Token:', token);
71+
});
72+
}, 1000);
73+
});
8274
},
8375
onError: (error) => {
8476
if (error instanceof Error) {
@@ -105,7 +97,7 @@ function Login({ logoutCallback, onSuccess }: LoginProps) {
10597
useEffect(() => {
10698
if (user.access_token && userProfile.email === '') {
10799
fetch(
108-
`https://www.googleapis.com/oauth2/v1/userinfo?access_token=${user.access_token}`,
100+
`https://www.googleapis.com/drive/v3/about?fields=user`,
109101
{
110102
headers: {
111103
Authorization: `Bearer ${user.access_token}`,
@@ -115,8 +107,16 @@ function Login({ logoutCallback, onSuccess }: LoginProps) {
115107
)
116108
.then((res) => res.json())
117109
.then(async (data) => {
118-
setUserProfile(data);
119-
authService.userProfile = data;
110+
// Map Drive About API response to UserProfile format
111+
const profile: UserProfile = {
112+
id: data.user?.permissionId || data.user?.emailAddress || '',
113+
email: data.user?.emailAddress || '',
114+
name: data.user?.displayName || '',
115+
picture: data.user?.photoLink || '',
116+
verified_email: true, // Drive API doesn't provide this, assume verified
117+
};
118+
setUserProfile(profile);
119+
authService.userProfile = profile;
120120
// check if XRPCode folder exists, if not create it
121121
try {
122122
const folder = await driveService.findFolderByName(Constants.XRPCODE);
@@ -130,7 +130,7 @@ function Login({ logoutCallback, onSuccess }: LoginProps) {
130130
loginLogger.error(`Error checking or creating XRPCode folder: ${String(error)}`);
131131
}
132132
}
133-
onSuccess(data);
133+
onSuccess(profile);
134134
})
135135
.catch((err) => loginLogger.error('Error fetching user profile:', err));
136136
}

0 commit comments

Comments
 (0)