mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
fix: safe error handling and numeric client_id in OIDC login
- Replace unsafe `as` cast with runtime type guard - Pass client_id as Number() per Telegram OIDC spec - Update TypeScript type to string | number
This commit is contained in:
@@ -43,8 +43,12 @@ export default function TelegramLoginButton({ referralCode }: TelegramLoginButto
|
|||||||
await loginWithTelegramOIDC(data.id_token);
|
await loginWithTelegramOIDC(data.id_token);
|
||||||
navigate('/');
|
navigate('/');
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
const error = err as { response?: { data?: { detail?: string } } };
|
let message = t('common.error');
|
||||||
setOidcError(error.response?.data?.detail || t('common.error'));
|
if (err && typeof err === 'object' && 'response' in err) {
|
||||||
|
const resp = (err as { response?: { data?: { detail?: string } } }).response;
|
||||||
|
if (resp?.data?.detail) message = resp.data.detail;
|
||||||
|
}
|
||||||
|
setOidcError(message);
|
||||||
} finally {
|
} finally {
|
||||||
setOidcLoading(false);
|
setOidcLoading(false);
|
||||||
}
|
}
|
||||||
@@ -61,7 +65,7 @@ export default function TelegramLoginButton({ referralCode }: TelegramLoginButto
|
|||||||
if (window.Telegram?.Login) {
|
if (window.Telegram?.Login) {
|
||||||
window.Telegram.Login.init(
|
window.Telegram.Login.init(
|
||||||
{
|
{
|
||||||
client_id: widgetConfig.oidc_client_id,
|
client_id: Number(widgetConfig.oidc_client_id) || widgetConfig.oidc_client_id,
|
||||||
request_access: widgetConfig.request_access ? ['write'] : undefined,
|
request_access: widgetConfig.request_access ? ['write'] : undefined,
|
||||||
lang: document.documentElement.lang || 'en',
|
lang: document.documentElement.lang || 'en',
|
||||||
},
|
},
|
||||||
|
|||||||
2
src/vite-env.d.ts
vendored
2
src/vite-env.d.ts
vendored
@@ -23,7 +23,7 @@ interface TelegramWebAppGlobal {
|
|||||||
interface TelegramLoginGlobal {
|
interface TelegramLoginGlobal {
|
||||||
init: (
|
init: (
|
||||||
options: {
|
options: {
|
||||||
client_id: string;
|
client_id: string | number;
|
||||||
request_access?: string[];
|
request_access?: string[];
|
||||||
lang?: string;
|
lang?: string;
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user