瀏覽代碼

Fix issue with log in with GitHub but need more error handle after

Unknown 11 年之前
父節點
當前提交
7776f407b6
共有 3 個文件被更改,包括 13 次插入14 次删除
  1. 1 0
      conf/app.ini
  2. 2 0
      modules/base/conf.go
  3. 10 14
      web.go

+ 1 - 0
conf/app.ini

@@ -79,6 +79,7 @@ ENABLED = false
 ENABLED =
 CLIENT_ID = 
 CLIENT_SECRET = 
+SCOPES = https://api.github.com/user
 
 [cache]
 ; Either "memory", "redis", or "memcache", default is "memory"

+ 2 - 0
modules/base/conf.go

@@ -34,6 +34,7 @@ type Oauther struct {
 	GitHub struct {
 		Enabled                bool
 		ClientId, ClientSecret string
+		Scopes                 string
 	}
 }
 
@@ -263,6 +264,7 @@ func newOauthService() {
 		OauthService.GitHub.Enabled = true
 		OauthService.GitHub.ClientId = Cfg.MustValue("oauth.github", "CLIENT_ID")
 		OauthService.GitHub.ClientSecret = Cfg.MustValue("oauth.github", "CLIENT_SECRET")
+		OauthService.GitHub.Scopes = Cfg.MustValue("oauth.github", "SCOPES")
 		oauths = append(oauths, "GitHub")
 	}
 

+ 10 - 14
web.go

@@ -59,20 +59,16 @@ func runWeb(*cli.Context) {
 	m.Use(middleware.Renderer(middleware.RenderOptions{Funcs: []template.FuncMap{base.TemplateFuncs}}))
 	m.Use(middleware.InitContext())
 
-	scope := "https://api.github.com/user"
-	// m.Use(sessions.Sessions("my_session", sessions.NewCookieStore([]byte("secret123"))))
-	// m.Use(oauth2.Github(&oauth2.Options{
-	// 	ClientId:     "09383403ff2dc16daaa1",
-	// 	ClientSecret: "5f6e7101d30b77952aab22b75eadae17551ea6b5",
-	// 	RedirectURL:  base.AppUrl + oauth2.PathCallback,
-	// 	Scopes:       []string{scope},
-	// }))
-	m.Use(oauth2.Github(&oauth2.Options{
-		ClientId:     "ba323b44192e65c7c320",
-		ClientSecret: "6818ffed53bea5815bf1a6412d1933f25fa10619",
-		RedirectURL:  base.AppUrl + oauth2.PathCallback[1:],
-		Scopes:       []string{scope},
-	}))
+	if base.OauthService != nil {
+		if base.OauthService.GitHub.Enabled {
+			m.Use(oauth2.Github(&oauth2.Options{
+				ClientId:     base.OauthService.GitHub.ClientId,
+				ClientSecret: base.OauthService.GitHub.ClientSecret,
+				RedirectURL:  base.AppUrl + oauth2.PathCallback[1:],
+				Scopes:       []string{base.OauthService.GitHub.Scopes},
+			}))
+		}
+	}
 
 	reqSignIn := middleware.Toggle(&middleware.ToggleOptions{SignInRequire: true})
 	ignSignIn := middleware.Toggle(&middleware.ToggleOptions{SignInRequire: base.Service.RequireSignInView})