summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-01-04 15:08:29 +0900
committerGitHub <noreply@github.com>2025-01-04 06:08:29 +0000
commit574034a2dd71da540711930ed743073aab3f71ee (patch)
tree04e72484cbb78f278af8075287e695e9bae4befd
parentfix(backend): アプリ作成方式で作成したトークンの権限を表... (diff)
downloadmisskey-574034a2dd71da540711930ed743073aab3f71ee.tar.gz
misskey-574034a2dd71da540711930ed743073aab3f71ee.tar.bz2
misskey-574034a2dd71da540711930ed743073aab3f71ee.zip
fix(frontend): MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (#15154)
* feat(MiAuth): アクセストークンの発行に失敗した場合コールバックに遷移しないようにする (MisskeyIO#831) Cherry-picked from TeamNijimiss/misskey@800359623e41a662551d774de15b0437b6849bb4 Co-authored-by: nafu-at <satsuki@nafusoft.dev> * Update Changelog * Update Changelog --------- Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com> Co-authored-by: nafu-at <satsuki@nafusoft.dev>
-rw-r--r--CHANGELOG.md2
-rw-r--r--packages/frontend/src/pages/miauth.vue20
2 files changed, 12 insertions, 10 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 435d67d008..4b8c2428c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,8 @@
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803)
- Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正
- Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正
+- Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正
+ (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4)
### Server
- Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 )
diff --git a/packages/frontend/src/pages/miauth.vue b/packages/frontend/src/pages/miauth.vue
index 7fb6653c13..ab060587c5 100644
--- a/packages/frontend/src/pages/miauth.vue
+++ b/packages/frontend/src/pages/miauth.vue
@@ -59,18 +59,18 @@ async function onAccept(token: string) {
name: props.name,
iconUrl: props.icon,
permission: _permissions.value,
- }, token).catch(() => {
+ }, token).then(() => {
+ if (props.callback && props.callback !== '') {
+ const cbUrl = new URL(props.callback);
+ if (['javascript:', 'file:', 'data:', 'mailto:', 'tel:', 'vbscript:'].includes(cbUrl.protocol)) throw new Error('invalid url');
+ cbUrl.searchParams.set('session', props.session);
+ location.href = cbUrl.toString();
+ } else {
+ authRoot.value?.showUI('success');
+ }
+ }).catch(() => {
authRoot.value?.showUI('failed');
});
-
- if (props.callback && props.callback !== '') {
- const cbUrl = new URL(props.callback);
- if (['javascript:', 'file:', 'data:', 'mailto:', 'tel:', 'vbscript:'].includes(cbUrl.protocol)) throw new Error('invalid url');
- cbUrl.searchParams.set('session', props.session);
- location.href = cbUrl.toString();
- } else {
- authRoot.value?.showUI('success');
- }
}
function onDeny() {