Go学習日誌 #2022/06/30
バグ修正
実施事項
以下のバグを修正
・他のユーザの予定が編集できてしまう
・未ログイン状態で/lifelogなどに遷移するとステータスコード500が返ってしまう(本来はログイン画面表示または403を返したい
他のユーザの予定が編集できてしまう問題
原因は、ユーザ識別子が被っていたこと。
Auth0の情報のaudが識別子と思っていたが、識別子はsubであるとのこと。
なので、subに変更したら問題が解決した。
未ログイン状態の処理
ginのグループのルーティングとミドルウェアを使って下記の様にした。
func New(auth *authenticator.Authenticator) *gin.Engine {
router := gin.Default()
...
// ログイン処理のハンドラ
router.GET("/login", login.Handler(auth))
// コールバックハンドラ
router.GET("/callback", callback.Handler(auth))
// 未ログイン時に表示させたくない画面
auth_group := router.Group("/", authRequired())
{
lifelog_group := auth_group.Group("/lifelog")
{
...
}
remarks_group := auth_group.Group("/remarks")
{
...
}
auth_group.DELETE("/logout", logout.Handler)
}
return router
}
func authRequired() gin.HandlerFunc {
return func(c *gin.Context) {
session := sessions.Default(c)
profile := session.Get("profile")
if profile == nil {
// 未ログインの場合403を返す
c.Status(http.StatusForbidden)
c.Abort()
}
c.Next()
}
}
その他
次回はHerokuで動作させてみる。
この記事が気に入ったらサポートをしてみませんか?