forked from wrenn/wrenn
fix: OAuth ConnectProvider state HMAC format mismatch
ConnectProvider computed HMAC over bare state, but Callback always verifies HMAC(state+":"+intent). This caused the account-linking flow to always fail with invalid_state.
This commit is contained in:
@ -404,10 +404,10 @@ func (h *meHandler) ConnectProvider(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
mac := computeHMAC(h.jwtSecret, state)
|
mac := computeHMAC(h.jwtSecret, state+":"+"login")
|
||||||
http.SetCookie(w, &http.Cookie{
|
http.SetCookie(w, &http.Cookie{
|
||||||
Name: "oauth_state",
|
Name: "oauth_state",
|
||||||
Value: state + ":" + mac,
|
Value: state + ":" + mac + ":" + "login",
|
||||||
Path: "/",
|
Path: "/",
|
||||||
MaxAge: 600,
|
MaxAge: 600,
|
||||||
HttpOnly: true,
|
HttpOnly: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user