Перенаправить в nodejs используя connect-auth - PullRequest
0 голосов
/ 01 августа 2011

Я использую nodejs 0.4.1 с Connect и connect-auth 0.3.0 для аутентификаций. Когда я вхожу, используя любую стратегию, я делаю перенаправление.

Проблема в том, что я получаю эту ошибку при записи заголовков для перенаправления (302): «Не удается отобразить заголовки после их отправки клиенту». Кажется, заголовки уже написаны.

req.authenticate(['google'], function(error, authenticated) 
        {
            if(error)
            {
                res.writeHead(302, {'Location': "/" + result.userName});
                res.end();
                return;
            }
            else if( authenticated === undefined)
            {
                return;
            }
            else if( authenticated ) 
            {
                sys.log("Authenticated from google " + util.inspect(req.getAuthDetails()));
                req.session.from = "google";
                RegisterOrLogin(...., function(result)
                {
                    if(result.error == false)//logged in successfuly
                    {//redirect
                        res.writeHead(302, {'Location': "/" + result.userName});
                        res.end();
                    }
                    else//could not log in
                    {
                        res.writeHead(302, {'Location': '/'});
                        res.end();
                    }
                });
                return;
            }
        });

Знаете ли вы какой-нибудь обходной путь для этого?

Спасибо.

Ответы [ 2 ]

1 голос
/ 01 августа 2011

У меня была похожая проблема с аутентификацией в FB. После нескольких часов возни с этим я переключился на все - https://github.com/bnoguchi/everyauth

работает как брелок

0 голосов
/ 09 августа 2011

Это должно работать просто отлично.Что происходит со многими людьми, так это то, что их настроенные перенаправления возвращают их на хост, который отличается от того, который они оставили, поэтому они получают другой сеанс, который дает вам довольно неожиданное поведение.Вы случайно не поймали номер строки, которая записывала заголовки?

...