func (s *Service) Authenticate(w http.ResponseWriter, r *http.Request, args *Args, reply *Args) (err error) { c := context.NewContext(r) args.Person.Email = args.Password.Email userID, _ := user.CurrentUserIDByEmail(r, args.Password.Email) pf, err := authenticate(c, args.Password, args.Person, userID) if err != nil { return err } if _, err = auth.CreateAndLogin(w, r, pf); err != nil { return err } reply.Person = pf.Person return nil }
// Authenticate process the request and returns a populated Profile. // If the Authenticate method can not authenticate the User based on the // request, an error or a redirect URL wll be return. func (p *Provider) Authenticate(w http.ResponseWriter, r *http.Request) ( pf *profile.Profile, url string, err error) { p.URL = r.URL.Host pf = profile.New(p.Name, p.URL) pass := &Password{ New: r.FormValue("Password.New"), Current: r.FormValue("Password.Current"), Email: r.FormValue("Email"), } c := context.NewContext(r) userID, _ := user.CurrentUserIDByEmail(r, pass.Email) pers := decodePerson(r) pf, err = authenticate(c, pass, pers, userID) return pf, "", err }