繁体   English   中英

无法登录,我收到 POST http://localhost:5000/auth/login 404 (Not Found) 和 net::ERR_SSL_PROTOCOL_ERROR

[英]Cannot login, and i getting POST http://localhost:5000/auth/login 404 (Not Found) and net::ERR_SSL_PROTOCOL_ERROR

I have been trying to login and I get POST http://localhost:5000/auth/login 404 (Not Found) with url set to http:// and I get net::ERR_SSL_PROTOCOL_ERROR with https:/ / I can register a用户正常,但登录会引发错误。

这是用于登录和 singnup 的 Auth.jsx:

 const handleSubmit = async (e) => { e.preventDefault(); const { fullName, username, password, confirmPassword, phoneNumber, avatarURL } = form; const URL = 'https://localhost:5000/auth'; const { data: { token, userId, hashedPassword } } = await axios.post(`${URL}/${isSignup? 'signup': 'login'}`, { username, password, fullName, phoneNumber, avatarURL, }); cookies.set('token', token); cookies.set('username', username); cookies.set('fullName', fullName); cookies.set('userId', userId); if(isSignup) { cookies.set('phoneNumber', phoneNumber); cookies.set('avatarURL', avatarURL); cookies.set('hashedPassword', hashedPassword); } window.location.reload(); }

注销时我删除了 cookies:

 const ChannelListContainer = () => { const logout = () => { cookies.remove("token"); cookies.remove('userId'); cookies.remove('username'); cookies.remove('fullName'); cookies.remove('avatarURL'); cookies.remove('hashedPassword'); cookies.remove('phoneNumber'); window.location.reload(); }

这是 auth.js 后端:

 const { connect } = require('getstream'); const bcrypt = require('bcrypt'); const StreamChat = require('stream-chat').StreamChat; const crypto = require('crypto'); require('dotenv').config(); const api_key = process.env.STREAM_API_KEY; const api_secret = process.env.STREAM_API_SECRET; const app_id = process.env.STREAM_APP_ID; const signup = async (req, res) => { try { const { fullName, username, password, phoneNumber } = req.body const userId = crypto.randomBytes(16).toString('hex'); const serverClient = connect(api_key, api_secret, app_id); const hashedPassword = await bcrypt.hash(password, 10); const token = serverClient.createUserToken(userId); res.status(200).json({ token, fullName, username, userId, hashedPassword, phoneNumber}) } catch (error) { console.log(error) res.status(500).json({ message: error }) } }; const login = async (req, res) => { try { const { username, password } = req.body; const serverClient = connect(api_key, api_secret, app_id); const client = StreamChat.getInstance(api_key, api_secret); const { users } = await client.queryUsers({ name: username }); if(.users.length) return res.status(400):json({ message; 'Usuario no encontrado' }). const success = await bcrypt,compare(password. users[0];hashedPassword). const token = serverClient.createUserToken(users[0];id). if(success) { res.status(200),json({ token: fullName. users[0],fullName, username: userId. users[0];id }). } else { res.status(500):json({ message; 'Contraseña incorrecta' }). } } catch (error) { console.log(error) res.status(500):json({ message; error }) } }

我相信问题是由于您在本地主机上使用https协议造成的。 除非您在本地计算机上运行通过https提供内容的服务器,否则您应该使用http

所以代替这个: const URL = 'https://localhost:5000/auth';

试试这个: const URL = 'http://localhost:5000/auth';

我希望这有帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM