It's been a while since I've worked with OAuth, so I wouldn't presume to try and give you an authoritative answer. But whenever I ran into any problems, I always made sure to log in/log out and if possible deactivate any existing tokens before requesting new ones.
When you try to log in to Stack Overflow via Yahoo/OAuth here's what happens (some call it the OAuth dance):
- Stack Overflow creates a request, asking for the permissions it wants from Yahoo, and sends the request.
- Yahoo receives the request and asks you to login. Once successfully
authenticated, Yahoo will confirm that you want to allow
Stack Overflow the permissions it requested.
- After your agree to the permissions, Yahoo will put together an
OAuth access token that grants access to services. Yahoo will save
the token/nonce/etc to authenticate you with until the token's
expiration time.
- Then Yahoo sends back the token to a callback URL Stack Overflow
specified in the initial request.
- Stack Overflow receives the token and saves it as well, allowing them
to use it on your behalf until it expires.
The whole process should be pretty seamless to the users perspective, as you should be linked directly to a Yahoo login, have a couple accept buttons to click (if any) and then be taken back to Stack Overflow's callback URL where your account should be logged in automatically. If this isn't working, try the following:
- Deauthorize any tokens through your yahoo control panel (if you they
let you).
- Log out of Yahoo/Stack Overflow on any active devices.
- Clear your cache on said devices and try again.
That always worked for me whenever weird stuff happened, my guess is that there's a token that one side thinks is good and the other disagrees. I do know that the above procedure always fixed it for me, good luck!
Too bad I couldn't clear the cache on my high school dancing... probably why my senior prom silently failed. Never saw my date or my wallet again.