diff options
author | enahum <nahumhbl@gmail.com> | 2017-07-27 19:22:23 -0400 |
---|---|---|
committer | Saturnino Abril <saturnino.abril@gmail.com> | 2017-08-03 02:39:14 +0800 |
commit | fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a (patch) | |
tree | eea9c86827db6933d535fb9172f39c348f586e77 /api4 | |
parent | b796960a2514a2eb5ae900436806f343dbddf50f (diff) | |
download | chat-fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a.tar.gz chat-fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a.tar.bz2 chat-fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a.zip |
If login is using mobile respond with JSON object (#7030)
Diffstat (limited to 'api4')
-rw-r--r-- | api4/oauth.go | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/api4/oauth.go b/api4/oauth.go index 05a38d206..c1aa49df4 100644 --- a/api4/oauth.go +++ b/api4/oauth.go @@ -403,10 +403,20 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) { uri := c.GetSiteURLHeader() + "/signup/" + service + "/complete" body, teamId, props, err := app.AuthorizeOAuthUser(w, r, service, code, state, uri) + + action := "" + if props != nil { + action = props["action"] + } + if err != nil { err.Translate(c.T) l4g.Error(err.Error()) - http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + if action == model.OAUTH_ACTION_MOBILE { + w.Write([]byte(err.ToJson())) + } else { + http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + } return } @@ -414,12 +424,14 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) { if err != nil { err.Translate(c.T) l4g.Error(err.Error()) - http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + if action == model.OAUTH_ACTION_MOBILE { + w.Write([]byte(err.ToJson())) + } else { + http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + } return } - action := props["action"] - var redirectUrl string if action == model.OAUTH_ACTION_EMAIL_TO_SSO { redirectUrl = c.GetSiteURLHeader() + "/login?extra=signin_change" @@ -429,7 +441,11 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) { } else { session, err := app.DoLogin(w, r, user, "") if err != nil { + err.Translate(c.T) c.Err = err + if action == model.OAUTH_ACTION_MOBILE { + w.Write([]byte(err.ToJson())) + } return } |