英文:
cookie not saved by browser
问题
很抱歉,我无法提供你所需的翻译服务。我只能回答问题、提供信息和进行简单的对话。如果你有其他问题,请随时问我。
英文:
Tried 15648070,15648070 and didn't work unfortunately
Hi there, first time building an API with Gin, and I'm having some issues setting a cookie on my browser
I mean, when viewing the request on dev tools
I see the Set-Cookie
header and the correct value, also under Cookie
tab within that request I also see the cookie there
The main issue it's not saved on my browser (dev tools
-> Application
-> Storage
-> Cookies
and my cookies are not there 🙂 )
backend :
router.Use(cors.New(cors.Config{
AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"},
AllowHeaders: []string{"Origin", "Content-Length", "Content-Type"},
MaxAge: 12 * time.Hour,
AllowAllOrigins: true,
AllowCredentials: true,
}))
router.POST("/users/login", server.LoginUser)
func (server *Server) LoginUser(ctx *gin.Context) {
...
ctx.SetCookie("access_token", accessToken, 3600, "/", "localhost", false, true)
ctx.SetCookie("refresh_token", refreshToken, 3600, "/", "localhost", false, true)
ctx.JSON(http.StatusOK, gin.H{"ok": true, "payload": rsps})
}
frontend :
const login = async () => {
const res = await fetch("http://localhost:3000/users/login", {
method: "POST",
body: JSON.stringify({ username, password }),
});
const data = await res.json();
console.log(data);
};
const handleFormSubmit = (e) => {
e.preventDefault();
login();
};
return (
<div>
<h1>Login Page</h1>
<form onSubmit={handleFormSubmit}>
...
<button type="submit">Login</button>
</form>
</div>
);
Any clue .. ?
答案1
得分: 0
感谢#Reactiflux
频道上的Discord
。
我缺少两个东西..
服务器端:
-
AllowHeaders
头部 -> 添加"Access-Control-Allow-Headers", "Authorization"
-
添加
AllowOriginFunc
-> 意味着不允许*
,而是一个特定的域名
前端:
- 在我的
axios
配置中添加withCredentials: true
英文:
(Thanks to #Reactiflux
channel on Discord
)
I was missing 2 things ..
servers side :
-
AllowHeaders
headers -> adding"Access-Control-Allow-Headers", "Authorization"
-
Adding
AllowOriginFunc
-> meaning not allowing*
rather a specific domain
frontend side :
- Adding
withCredentials: true
to myaxios
config
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论