Điểm:0

Viết lại thành https://localhost:8000 thay vì https://localhost

lá cờ kr

Tôi sử dụng nginx trong MacOS của mình để kiểm tra xác thực của bên thứ ba như Google và Twitter trong máy chủ cục bộ. Kết quả là, trên trang web địa phương của tôi https://localhost:8000/..., tôi có thể tham gia với www.funfun.io để xác thực bên thứ ba.

Đây là tệp cấu hình nginx:

worker_processes 1;

sự kiện {
    công_nhân kết_nối 1024 ;
}

http {
    bao gồm mime.types;
    ứng dụng default_type/octet-stream;
    gửi tệp trên;
    keepalive_timeout 65;

    log_format my_log '{ "thời gian": "$time_iso8601", '
        '"remote_addr": "$remote_addr", '
        '"trạng thái": "$trạng thái", '
        '"yêu cầu": "$request", '
        '"request_method": "$request_method", '
        '"http_referrer": "$http_referer", '
        '"http_x_forwarded_for": "$http_x_forwarded_for", '
        '"máy chủ": "$host", '
        '"server_name": "$server_name", '
        '"upstream_address": "$upstream_addr", '
        '"upstream_status": "$upstream_status", }';

    access_log /usr/local/var/log/nginx/my_log_access.log my_log;

    ngược dòng funfun {
        máy chủ 178.62.87.72:443;
    }

    người phục vụ {
        nghe 443 ssl;
        máy chủ_tên máy chủ cục bộ;
        ssl_certificate /etc/ssl/localhost/localhost.crt;
        ssl_certificate_key /etc/ssl/localhost/localhost.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        bật ssl_prefer_server_ciphers;
        ssl_session_timeout 1d;
        tắt ssl_dập ghim;
        tắt ssl_stapling_verify;
        add_header Strict-Transport-Security max-age=15768000;
        add_header X-Frame-Options "";
        proxy_ssl_name "www.funfun.io";
        proxy_ssl_server_name bật;

        vị trí ~ /xã hộiĐăng nhậpSuccess {
            viết lại ^ '/#/socialLoginSuccess' chuyển hướng;
        }

        vị trí ~ /auth/(.*) {
            proxy_pass https://funfun/10studio/auth/$1?$query_string;
            proxy_set_header Máy chủ lưu trữ cục bộ;
        }
    }
    bao gồm các máy chủ/*;
}

Đây là nhật ký đăng nhập.

{ "time": "2021-11-11T01:02:47+01:00", "remote_addr": "127.0.0.1", "status": "302", "request": "GET /10studio/auth/ google HTTP/1.1", "request_method": "GET", "http_referrer": "https://localhost:8000/", "http_x_forwarded_for": "-", "host": "localhost", "server_name": " localhost", "upstream_address": "178.62.87.72:443", "upstream_status": "302" }
{ "time": "2021-11-11T01:02:50+01:00", "remote_addr": "127.0.0.1", "status": "302", "request": "GET /auth/google/ callback?code=4%2F0AX4XfWihw3erIiZok3Yk8jZ5hjcg4sT35YLuZAp5h3qIDZvC_BuHSlvbRiTSh4Sobo_Wbw&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapauthmail.com%2Finfoethuser=openFidethuser. 0&prompt=đồng ý HTTP/1.1", "request_method": "GET", "http_referrer": "https://accounts.google.com/", "http_x_forwarded_for": "-", "host": "localhost", " server_name": "localhost", "upstream_address": "178.62.87.72:443", "upstream_status": "302" }
{ "time": "2021-11-11T01:02:50+01:00", "remote_addr": "127.0.0.1", "status": "302", "request": "GET /auth/signinSuccess HTTP /1.1", "request_method": "GET", "http_referrer": "https://accounts.google.com/", "http_x_forwarded_for": "-", "host": "localhost", "server_name": " localhost", "upstream_address": "178.62.87.72:443", "upstream_status": "302" }
{ "time": "2021-11-11T01:02:50+01:00", "remote_addr": "127.0.0.1", "status": "302", "request": "GET /socialLoginSuccess HTTP/1.1 ", "request_method": "GET", "http_referrer": "https://accounts.google.com/", "http_x_forwarded_for": "-", "host": "localhost", "server_name": "localhost" , "upstream_address": "-", "upstream_status": "-" }

Quá trình đăng nhập như sau:

  • Tôi bắt đầu với một trang web https://localhost:8000/#/start, nơi có một nút để đăng nhập bằng Google.
  • Tôi nhấp vào nút đó, có url là https://localhost/10studio/auth/google.
  • trang web của https://accounts.google.com/... được hiển thị nơi chúng tôi có thể chọn tài khoản Google
  • Sau khi đăng nhập thành công, trang web của https://localhost/#/socialLoginSuccess được hiển thị.

Tất cả các bước đều hoạt động tốt trừ bước cuối cùng; trận chung kết https://localhost/#/socialLoginSuccess hiển thị trang web của Chào mừng đến nginx!. url chính xác phải là https://localhost:8000/#/socialLoginSuccess.

Có ai biết cách tôi có thể sửa đổi tệp cấu hình nginx sao cho url cuối cùng dẫn đến https://localhost:8000/#/socialLoginSuccess?

Chỉnh sửa 1:

Đây là một số mã của funfun.io:

(* dưới app.js *)

var _10studio = yêu cầu('./routes/10studio');
app.use('/10studio', _10studio);
(* bên dưới routes/10studio.js *)

router.get('/auth/google', passport.authenticate('10studio-google', {
    phạm vi: ['https://www.googleapis.com/auth/userinfo.profile',
        'https://www.googleapis.com/auth/userinfo.email']
}));

router.get('/auth/google/callback', passport.authenticate('10studio-google', {
    successRedirect: '/auth/signinSuccess',
    failRedirect: '/auth/signinFailure',
    failFlash: đúng
})))

router.get('/auth/signinSuccess', function (req, res, next) {
    res.redirect("/socialLoginSuccess");
})
lá cờ us
Tôi nghĩ rằng bạn muốn đảo ngược proxy tất cả lưu lượng truy cập qua cổng 443 và không sử dụng các cổng không chuẩn ra bên ngoài. Ngoài ra, tôi nghĩ rằng nginx không thể sửa đổi URL nơi khách truy cập được gửi sau khi xác thực thành công. Bạn nên sửa đổi thực thể tạo URL sau khi xác thực.
lá cờ kr
@TeroKilkanen Tôi đã thêm một số mã funfun.io vào OP. Tôi không thấy cách sửa đổi thực thể sao cho thực thể đó dẫn đến `https://localhost:8000/#/socialLoginSuccess`.
lá cờ kr
Tôi đã cố gắng thay thế `proxy_set_header Host localhost;` bằng `proxy_set_header Host localhost:8000;` trong nginx nhưng không được.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.