wevm / wagmi

Reactive primitives for Ethereum apps
https://wagmi.sh
MIT License
5.92k stars 1.02k forks source link

Disconnected session cookie not removed after connecting again #4097

Closed dengpeng closed 1 month ago

dengpeng commented 3 months ago

Check existing issues

Describe the bug

When calling disconnect, wagmi would normally store a session cookie like wagmi.io.metamask.disconnected so the page stays disconnected after a refresh.

However, this cookie should be cleared/removed if the user connects again. This removal of the "disconnected" cookie currently only works when the the "connect" call is made on the root / and first level pages (e.g. /foo) but NOT on pages that are deeper (e.g. /bar/qux or /a/b/c).

Link to Minimal Reproducible Example

https://wagmi-bug.vercel.app/

Steps To Reproduce

(Code is available at https://github.com/dengpeng/wagmi-bug)

What Wagmi package(s) are you using?

wagmi, @wagmi/core

Wagmi Version

@wagmi/core@2.11.5, wagmi@2.10.8

Viem Version

2.16.3

TypeScript Version

5

Anything else?

No response

arunkumar201 commented 3 months ago

yeah same issue

https://github.com/wevm/wagmi/issues/4073

evgenyboxer commented 2 months ago

Yep confirm this issue exists.

My fix for now is to delete wagmi.*.disconnected cookies when you are connected.

redianmf commented 2 months ago

I tried to opt out the storage object in createConfig method. The wagmi.*.disconnected, wagmi.store, etc. are saved in localStorage. Are there any other scenario where these object could be stored? so that it can be handled correctly

goosewobbler commented 2 months ago

I had a poke at this, it seems setting a different cookie path fixes the issue as cookies with the path / are not recognised on e.g. /a/b/c.

github-actions[bot] commented 1 month ago

This issue has been locked since it has been closed for more than 14 days.

If you found a concrete bug or regression related to it, please open a new bug report with a reproduction against the latest Wagmi version. If you have any questions or comments you can create a new discussion thread.