Skip to content

Commit

Permalink
Merge pull request #115 from NOctu1412/main
Browse files Browse the repository at this point in the history
Fix the token refresh error
  • Loading branch information
s-alad authored Jun 21, 2024
2 parents bf1a83d + 0c00fb7 commit d08462d
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 43 deletions.
7 changes: 4 additions & 3 deletions client/pages/api/otp/fire/verify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,11 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
console.log('---------------------')

res.status(200).json({
token: access_token,
refresh_token: access_refresh_token,
bereal_access_token: access_token,
firebase_refresh_token: firebase_refresh_token,
firebase_id_token: firebase_token,
token_type: access_token_type,
expiration: access_expiration,
expiration: firebase_expiration,
uid: uid,
is_new_user: is_new_user
});
Expand Down
61 changes: 34 additions & 27 deletions client/pages/api/refresh.ts
Original file line number Diff line number Diff line change
@@ -1,50 +1,57 @@
import type { NextApiRequest, NextApiResponse } from 'next'
import axios from 'axios';
import { PROXY } from '@/utils/constants';
import { GAPIKEY, PROXY } from '@/utils/constants';

export default async function handler(req: NextApiRequest, res: NextApiResponse) {
let headers_list = {"Accept": "application/json","User-Agent": "BeReal/8586 CFNetwork/1240.0.4 Darwin/20.6.0","x-ios-bundle-identifier": "AlexisBarreyat.BeReal","Content-Type": "application/json"}
let firebase_refresh_token = req.body.refresh;

let headersList = {
"Accept": "*/*",
"User-Agent": "BeReal/8586 CFNetwork/1240.0.4 Darwin/20.6.0",
"x-ios-bundle-identifier": "AlexisBarreyat.BeReal",
"Content-Type": "application/json"
let firebase_refresh_data = JSON.stringify({
"grantType": "refresh_token",
"refreshToken": firebase_refresh_token
});
let firebase_refresh_options = {
url: `https://securetoken.googleapis.com/v1/token?key=${GAPIKEY}`,
method: "POST",
headers: headers_list,
data: firebase_refresh_data,
}
let firebase_refresh_response = await axios.request(firebase_refresh_options);

let refresh_token = req.body.refresh;
let new_firebase_token = firebase_refresh_response.data.id_token;
let new_firebase_refresh_token = firebase_refresh_response.data.refresh_token;
let firebase_expiration = Date.now() + firebase_refresh_response.data.expires_in * 1000;

console.log("refresh token")
console.log(refresh_token);
// ============================================================================================

let refresh_body = JSON.stringify({
"grant_type": "refresh_token",
let access_grant = JSON.stringify({
"grant_type": "firebase",
"client_id": "ios",
"client_secret": "962D357B-B134-4AB6-8F53-BEA2B7255420",
"refresh_token": refresh_token
"token": new_firebase_token
});

let refresh_options = {
url: `${PROXY}https://auth.bereal.team/token?grant_type=refresh_token`,
let access_grant_options = {
url: `${PROXY}https://auth.bereal.team/token?grant_type=firebase`,
method: "POST",
headers: headersList,
data: refresh_body,
headers: headers_list,
data: access_grant,
}

return axios.request(refresh_options).then(
return await axios.request(access_grant_options).then(
(response) => {
console.log(response.data);

let token = response.data.access_token;
let refresh = response.data.refresh_token;
let expiration = Date.now() + response.data.expires_in * 1000;

res.status(200).json({ status: "success", token: token, refresh: refresh, expiration: expiration });
let bereal_access_token = response.data.access_token;
res.status(200).json({
status: "success",
token: bereal_access_token,
firebase_id_token: new_firebase_token,
firebase_refresh_token: new_firebase_refresh_token,
expiration: firebase_expiration
})
}
).catch(
(error) => {
console.log("ERROR");
console.log(error);
res.status(400).json({ status: "error" });
}
)
);
}
7 changes: 4 additions & 3 deletions client/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,9 @@ export default function Home() {
let response = axios.request(options).then(
async (response) => {
console.log(response.data);
localStorage.setItem("token", response.data.token);
localStorage.setItem("refresh_token", response.data.refresh_token);
localStorage.setItem("token", response.data.bereal_access_token);
localStorage.setItem("firebase_refresh_token", response.data.firebase_refresh_token);
localStorage.setItem("firebase_id_token", response.data.firebase_id_token)
localStorage.setItem("expiration", response.data.expiration)
localStorage.setItem("uid", response.data.uid);
localStorage.setItem("is_new_user", response.data.is_new_user);
Expand Down Expand Up @@ -172,7 +173,7 @@ export default function Home() {
buttonClass={s.button}
containerClass={s.cont}
/>
<button className={s.send} onClick={() => requestOTPVonage(inputNumber)}>
<button className={s.send} onClick={() => requestOTPFirebase(inputNumber)}>
send
</button>
</div>
Expand Down
21 changes: 12 additions & 9 deletions client/utils/check.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ export default function useCheck() {

function removeStorage() {
localStorage.removeItem("token");
localStorage.removeItem("refresh_token");
localStorage.removeItem("firebase_refresh_token");
localStorage.removeItem("firebase_id_token");
localStorage.removeItem("expiration");
localStorage.removeItem("uid");
localStorage.removeItem("is_new_user");
Expand All @@ -21,15 +22,15 @@ export default function useCheck() {
console.log("CHECKING STATE")

let token = localStorage.getItem("token");
let refresh_token = localStorage.getItem("refresh_token");
let firebase_refresh_token = localStorage.getItem("firebase_refresh_token");
let expiration = localStorage.getItem("expiration");
let now = Date.now();
console.log(token);
console.log(refresh_token);
console.log(firebase_refresh_token);
console.log(expiration);
console.log(now);

if (token == null || expiration == null || refresh_token == null) {
if (token == null || expiration == null || firebase_refresh_token == null) {
console.log("no token or expiration or refresh_token");
removeStorage();
router.push("/");
Expand All @@ -42,19 +43,21 @@ export default function useCheck() {
{
url: "/api/refresh",
method: "POST",
data: { refresh: refresh_token }
data: { refresh: firebase_refresh_token }
}
).then(
(response) => {
console.log(response.data);
if (response.data.status == "success") {
console.log("refresh success");
let token = response.data.token;
let refresh_token = response.data.refresh;
let new_token = response.data.token;
let new_firebase_id_token = response.data.firebase_id_token;
let new_firebase_refresh_token = response.data.firebase_refresh_token;
let expiration = response.data.expiration;

localStorage.setItem("token", token);
localStorage.setItem("refresh_token", refresh_token);
localStorage.setItem("token", new_token);
localStorage.setItem("firebase_refresh_token", new_firebase_refresh_token);
localStorage.setItem("firebase_id_token", new_firebase_id_token);
localStorage.setItem("expiration", expiration);

console.log("refreshing page");
Expand Down
3 changes: 2 additions & 1 deletion client/utils/logout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ export function logout(router: any, ls: any) {

function removeStorage() {
ls.removeItem("token");
ls.removeItem("refresh_token");
ls.removeItem("firebase_refresh_token");
ls.removeItem("firebase_id_token");
ls.removeItem("expiration");
ls.removeItem("uid");
ls.removeItem("is_new_user");
Expand Down

0 comments on commit d08462d

Please sign in to comment.