-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ブラウザ拡張機能: SAML認証対応 #616
ブラウザ拡張機能: SAML認証対応 #616
Conversation
const { settings } = useSettings(); | ||
|
||
const { data: session, mutate } = useSWR(settings ? 'auth' : null, () => { | ||
return fetchAuthSession(); | ||
}); | ||
|
||
const loading = useMemo(() => { | ||
return !settings || !session; | ||
}, [session, settings]); | ||
|
||
return { | ||
hasAuthrized: !!session?.tokens, | ||
authenticate: mutate, | ||
loading, | ||
hasAuthenticated: !!session?.tokens, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amplify UIで認証に関する処理を行うuseAuthenticator
というHooksがありますが、以下の理由で利用していません。
- 今回認証に関する設定(useSettings)を非同期に取得しているが、設定の取得完了を待たずに、useAuthenticatorが認証ステータスを取得しにいくため、正確なステータスが取得できない
- 設定の取得完了のタイミングで、認証ステータスを更新したいが、useAuthenticatorに任意のタイミングで認証ステータスを取得する関数がない
- 今回、SWRのmutateを利用して、任意のタイミングで認証セッションを取得し、その中身で認証状態を判断するようなロジックとしている
<!doctype html> | ||
<html lang="ja"> | ||
|
||
<head> | ||
<meta charset="UTF-8" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> | ||
</head> | ||
|
||
<body style="background-color: #232f3e"> | ||
<div id="root"></div> | ||
<script src="./index.tsx" type="module"></script> | ||
</body> | ||
|
||
</html> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SAML認証を行う際は、CognitoのHosted UIからコールバックさせる必要があるので、新しいタブで認証画面を開くようにしています。
iframeに埋め込まれた状態だと、親画面のURLにコールバックすることになり、Cognito 側でブロックされます。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
動作確認取れました!LGTM!
Issue #, if available:
Description of changes:
ブラウザ拡張機能をSAML認証に対応しました。
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.