太好了,我已经检查了我在此网站上能找到的所有答案。但是我找不到有效的解决方案。我正在尝试将用户从统一应用程序登录到要在本地主机上开发的站点。我没有通过布尔值“记住”,因为它给了我麻烦。
我的统一代码是:
IEnumerator Login(string username, string password, bool remember)
{
List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
formData.Add(new MultipartFormDataSection("username=" + username + "&password=" + password));
using (UnityWebRequest www = UnityWebRequest.Post("http://127.0.0.1:5000/api/children/mobile_login/", formData))
{
yield return www.SendWebRequest();
var response = www.downloadHandler.text;
Debug.Log(response);
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
Debug.Log("Login complete!");
}
}
}
我的python代码是:
@children.route('/mobile_login', methods=['POST'])
def mobile_login():
username = request.form.get('username')
password = request.form.get('password')
remember = request.form.get('remember')
user = User.objects(username=username).first()
if user and crypt.check_password_hash(user.password, password):
login_user(user)
user.save()
token = user.get_auth_token()
res = make_response(jsonify({"user": user}), 200)
if remember:
res.set_cookie('child-auth', value=token, path='/')
return res
else:
return jsonify({"error": "unable to login"}), 401
代码返回“ {“错误”:“无法登录”}“和HTTP / 1.1 401未经授权。
我知道用户名和密码正确。而且我知道登录功能可以正常工作,因为我的同事能够从他正在使用的React应用中登录。
我尝试将本地主机作为https运行,但无法正常工作,因此将其更改回http。
有什么建议吗?