From 1a1543f1909fd7cf3e05b7c7651a53b1d1d22f14 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Tue, 7 Apr 2020 10:08:34 +0800 Subject: [PATCH] Fix: catch internal error in OneDrive OAuth callback --- assets | 2 +- go.mod | 2 +- service/callback/oauth.go | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/assets b/assets index a576b16..15a7805 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit a576b16440a9fc8268685a7120069443907a4de4 +Subproject commit 15a7805c2e1dc90a4c92c8165ce44d0f315a5d39 diff --git a/go.mod b/go.mod index 1b4273c..b2154cc 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/duo-labs/webauthn v0.0.0-20191119193225-4bf9a0f776d4 github.com/fatih/color v1.7.0 github.com/gin-contrib/cors v1.3.0 - github.com/gin-contrib/gzip v0.0.2-0.20200226035851-25bef2ef21e8 // indirect + github.com/gin-contrib/gzip v0.0.2-0.20200226035851-25bef2ef21e8 github.com/gin-contrib/sessions v0.0.1 github.com/gin-contrib/static v0.0.0-20191128031702-f81c604d8ac2 github.com/gin-gonic/gin v1.5.0 diff --git a/service/callback/oauth.go b/service/callback/oauth.go index 3396ce6..9f124c7 100644 --- a/service/callback/oauth.go +++ b/service/callback/oauth.go @@ -23,7 +23,11 @@ func (service *OneDriveOauthService) Auth(c *gin.Context) serializer.Response { return serializer.ParamErr(service.ErrorMsg, nil) } - policyID := util.GetSession(c, "onedrive_oauth_policy").(uint) + policyID, ok := util.GetSession(c, "onedrive_oauth_policy").(uint) + if !ok { + return serializer.Err(serializer.CodeNotFound, "授权会话不存在,请重试", nil) + } + util.DeleteSession(c, "onedrive_oauth_policy") policy, err := model.GetPolicyByID(policyID)