【发布时间】:2020-10-12 12:15:07
【问题描述】:
我希望有人可以在这里帮助我。
我正在使用 React 创建一个小型 Fantasy Football Premier League 应用程序。 在从 Fantasy Premier League API 请求信息之前,需要验证用户特定信息。
这个想法是让应用程序从登录页面开始,用户在其中输入他们的用户名和密码。然后,应用会将此信息发布到登录 URL 并返回一个令牌,该令牌可用于检索需要身份验证的信息。
之前,我在 python 中创建了可以运行的应用程序,下面是代码:
'login':USERNAME,
'password':PASSWORD,
'redirect_uri': 'https://fantasy.premierleague.com/',
'app':'plfpl-web'
}
s = requests.session()
s.post("https://users.premierleague.com/accounts/login/", data=payload)
myData = s.get('https://fantasy.premierleague.com/api/me').json();
我如何知道这是有效的,当授权时,变量 myData 可以成功访问“https://fantasy.premierleague.com/api/me”并分配给我的所有授权信息。当我的详细信息不正确(未授权)时,myData 变量为“null”(键的值为 nullType)。 使用这种方法,我可以从 's' 变量中请求所有授权信息。
现在将代码转换为 React 时,我很难成功进行身份验证。 我打印出对“https://fantasy.premierleague.com/api/me”API url 的 GET 调用的响应,我得到了 NULL 值,就像我在上面所说的那样。我的用户名和密码是正确的。
下面是当前代码。
formData:any = {
'login': USERNAME,
'password': PASSWORD,
'app': 'plfpl-web',
'redirect_uri': 'https://fantasy.premierleague.com/'
};
login = async (username:string = this.formData.login,password:string = this.formData.password) => {
return axios
.post("https://cors-anywhere.herokuapp.com/https://users.premierleague.com/accounts/login/", this.formData).then((response)=>
{
axios.get("https://cors-anywhere.herokuapp.com/https://fantasy.premierleague.com/api/me")
.then(result => {
console.log(result);
});
});
请有人帮我解决以下问题:
- 我做错了什么以及如何通过 react 成功登录 FPL?
- 一旦我成功实现了身份验证,我听说我可能需要检索一个令牌号以在后续调用中使用。我该怎么做?
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
仍然坚持这个:(有人在外面吗?:D
标签: javascript python node.js reactjs electron