Skip to content
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

fix: Move AuthProvider to the RootApp to share between all page components #505

Merged
merged 1 commit into from
Jun 9, 2024

Conversation

hrk091
Copy link
Member

@hrk091 hrk091 commented Jun 9, 2024

safariで3rd party tracking cookie blockingが有効なブラウザで、infoやcheck_in_event にアクセスすると /authroizeが都度走ってしまい /ui にredirectされる件の対処です。

そもそも、上記の事象は、

  1. 各pageにアクセスしたときに、access_tokenの取得処理(/authorizeのcall)が走ってしまう
  2. 3rd party cookieがblockされると、auth0 libraryのgetTokenSilentlyが通らない
  3. redirectを伴う再認証処理が走ってしまう

が原因です。
一方で、初回アクセス時に認証してaccess_tokenは取得済であり、そもそも1で /authorize のcallが走ることがよくないです。
これは、各pageごとにwithAuthProviderを実行しており、pageの切替時にAuthProviderがdestroy-and-recreateされてしまっているからです。

NextjsのPageRouterを使っている場合、_app.tsxで定義されているtop levelのRootAppであれば、pageを切り替えても引き継がれます。AuthProviderの実行をここに移すことで、pageを切り替えてもstateが維持され、/authorizeのcallが実行されないようにしました。

この対応により、safariでも/info が表示できることを確認しました。

1点、今回の対応により無認証のページが表示できなくなっています。
ただ、これに関しては別の方式で対応すべきであり、pageを切り替えても認証状態は維持される方が望ましいので、今回の対応は無認証ページが混在する場合でも導入するべきと考えます。

@hrk091 hrk091 requested a review from takaishi June 9, 2024 08:05
@gitops-for-cloudnativedays gitops-for-cloudnativedays bot added the reviewapps Build ReviewApp environment automatically if this label is granted label Jun 9, 2024
gitops-for-cloudnativedays bot pushed a commit to cloudnativedaysjp/dreamkast-infra that referenced this pull request Jun 9, 2024
Copy link

github-actions bot commented Jun 9, 2024

gitops-for-cloudnativedays bot added a commit to cloudnativedaysjp/dreamkast-infra that referenced this pull request Jun 9, 2024
Copy link
Contributor

@takaishi takaishi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます!!!

@takaishi takaishi merged commit a5a1fd3 into main Jun 9, 2024
5 checks passed
@takaishi takaishi deleted the fix/use_auth_provider_on_shared_component branch June 9, 2024 08:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
reviewapps Build ReviewApp environment automatically if this label is granted
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants