From 8196c227c3d35964ea47ad438e44e1a898be3f33 Mon Sep 17 00:00:00 2001 From: Eugene Date: Fri, 22 Dec 2017 15:05:06 -0600 Subject: [PATCH] add provider prefix to ID --- app/main.go | 2 +- app/rest/auth/auth.go | 4 ++-- app/rest/auth/providers.go | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/main.go b/app/main.go index e7ca2311..75a4f935 100644 --- a/app/main.go +++ b/app/main.go @@ -26,7 +26,7 @@ var opts struct { GithubCSEC string `long:"github-csec" env:"REMARK_GITHUB_CSEC" description:"Github OAuth client secret"` Admins []string `long:"admin" env:"ADMIN" default:"umputun@gmail.com" description:"admin(s) names" env-delim:","` - DevMode bool `long:"dev" env:"DEV" description:"dev mode mode"` + DevMode bool `long:"dev" env:"DEV" description:"development mode, no auth enforced"` Dbg bool `long:"dbg" env:"DEBUG" description:"debug mode"` } diff --git a/app/rest/auth/auth.go b/app/rest/auth/auth.go index 3e02d25c..9a30e92d 100644 --- a/app/rest/auth/auth.go +++ b/app/rest/auth/auth.go @@ -56,7 +56,7 @@ func initProvider(p Params, provider Provider) *Provider { return &provider } -// LoginHandler - GET /login/github?from=http://radio-t.com +// LoginHandler - GET /login/{provider}?from=redirect-back-url func (p Provider) LoginHandler(w http.ResponseWriter, r *http.Request) { // make state (random) and store in session @@ -83,7 +83,7 @@ func (p Provider) LoginHandler(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, p.conf.AuthCodeURL(state), http.StatusTemporaryRedirect) } -// AuthHandler is redirect url. Should check state to prevent CSRF. +// AuthHandler fills user info and redirects to "from" url func (p Provider) AuthHandler(w http.ResponseWriter, r *http.Request) { session, err := p.Get(r, "remark") if err != nil { diff --git a/app/rest/auth/providers.go b/app/rest/auth/providers.go index a448faf8..71a69d67 100644 --- a/app/rest/auth/providers.go +++ b/app/rest/auth/providers.go @@ -20,14 +20,15 @@ func NewGoogle(p Params) *Provider { FilesystemStore: p.SessionStore, MapUser: func(data map[string]interface{}) store.User { userInfo := store.User{ - Name: data["name"].(string), ID: data["email"].(string), + Name: data["name"].(string), Picture: data["picture"].(string), Profile: data["profile"].(string), } if userInfo.Name == "" { userInfo.Name = strings.Split(userInfo.ID, "@")[0] } + userInfo.ID = "google_" + userInfo.ID return userInfo }, }) @@ -52,6 +53,7 @@ func NewGithub(p Params) *Provider { if userInfo.Name == "" { userInfo.Name = userInfo.ID } + userInfo.ID = "github_" + userInfo.ID return userInfo }, })