Json 如何在React Js中使用my api进行登录验证
反应JS 我是新手 在我的api中有用户名和密码。如果用户登录,则必须从我的json值进行验证Json 如何在React Js中使用my api进行登录验证,json,reactjs,fetch,Json,Reactjs,Fetch,反应JS 我是新手 在我的api中有用户名和密码。如果用户登录,则必须从我的json值进行验证 handleSubmit(e) { fetch('https://randomuser.me/api?results=1') .then((response) => { return response.json() .then((json) => { if (response.ok) { return Promise.reso
handleSubmit(e) {
fetch('https://randomuser.me/api?results=1')
.then((response) => {
return response.json()
.then((json) => {
if (response.ok) {
return Promise.resolve(json)
}
return Promise.reject(json)
})
})
警报(json)无法检查结果。
如何获取响应中的用户名和密码
如果用户成功登录,如何进入下一页
我的完整代码
App.js
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';
const ReactCSSTG = CSSTransitionGroup;
class App extends Component {
constructor(props) {
super(props);
this.state = {
isVisible: true
}
// Bindings
this.handleSubmit = this.handleSubmit.bind(this);
this.handleRemount = this.handleRemount.bind(this);
}
handleSubmit(e) {
alert("dsa");
fetch('https://randomuser.me/api?results=1')
.then((response) => {
return response.json()
.then((json) => {
if (response.ok) {
return Promise.resolve(json)
}
return Promise.reject(json)
})
})
}
handleRemount(e) {
this.setState({
isVisible: true
}, function () {
console.log(this.state.isVisible)
});
e.preventDefault();
}
render() {
// const for React CSS transition declaration
let component = this.state.isVisible ? <Modal onSubmit={this.handleSubmit} key='modal' /> : <ModalBack onClick={this.handleRemount} key='bringitback' />;
return <ReactCSSTG transitionName="animation" transitionAppear={true} transitionAppearTimeout={500} transitionEnterTimeout={500} transitionLeaveTimeout={300}>
{component}
</ReactCSSTG>
}
}
// Modal
class Modal extends React.Component {
render() {
return <div className='Modal'>
<Logo />
<form onSubmit={this.props.onSubmit}>
<Input type='text' name='username' placeholder='username' />
<Input type='password' name='password' placeholder='password' />
<button> Sign In</button>
</form>
<a href='#'>Lost your password ?</a>
</div>
}
}
// Generic input field
class Input extends React.Component {
render() {
return <div className='Input'>
<input type={this.props.type} name={this.props.name} placeholder={this.props.placeholder} required />
<label htmlFor={this.props.name}></label>
</div>
}
}
// Fake logo
class Logo extends React.Component {
render() {
return <div className="logo">
<i><img src={logo} className="App-logo" alt="logo" /></i>
<span> Test </span>
</div>
}
}
// Button to brind the modal back
class ModalBack extends React.Component {
render() {
return (
<button className="bringitback" onClick={this.props.onClick} key={this.props.className}>Back to login page!</button>
);
}
}
export default App;
import React,{Component}来自'React';
从“/logo.svg”导入徽标;
导入“/App.css”;
从“反应转换组/CSSTransitionGroup”导入CSSTransitionGroup;
const ReactCSSTG=CSSTransitionGroup;
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
可见:正确
}
//绑定
this.handleSubmit=this.handleSubmit.bind(this);
this.handleRemount=this.handleRemount.bind(this);
}
handleSubmit(e){
警报(“dsa”);
取('https://randomuser.me/api?results=1')
。然后((响应)=>{
返回response.json()
。然后((json)=>{
if(response.ok){
return Promise.resolve(json)
}
return-Promise.reject(json)
})
})
}
handleRemount(e){
这是我的国家({
可见:正确
},函数(){
console.log(this.state.isVisible)
});
e、 预防默认值();
}
render(){
//React CSS转换声明的常量
让组件=this.state.isVisible?:;
返回
{component}
}
}
//模态
类Modal扩展了React.Component{
render(){
返回
登录
}
}
//通用输入字段
类输入扩展了React.Component{
render(){
返回
}
}
//假标志
类Logo扩展了React.Component{
render(){
返回
试验
}
}
//按钮,使模式返回
类ModalBack扩展了React.Component{
render(){
返回(
返回登录页面!
);
}
}
导出默认应用程序;
提前谢谢
fetch('https://randomuser.me/api?results=1')
.then((response) => {
// check for status code from service if success
// set response in state such as login success
this.route.navigate(['/']);
})
.catch(error =>{
console.log(error);
});
})
将用户带到下一页。使用react路由器来实现这一点
Step 1: Wrap your <App /> inside <BrowserRouter />
第1步:包裹你的身体
现在使用服务调用验证用户名/密码是否正确的响应
然后this.route.navigate(['/'])代码>
成功登录后,这会将用户导航到应用程序的主页。如果您现在只想捕获数据,这就可以了
fetch('https://randomuser.me/api?results=1')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
console.log(JSON.stringify(myJson));
});
这就是我所做的,请记住我使用express/node设置了后端。
我使用Axios从api获取数据
onSubmit = (e) => {
e.preventDefault();
axios.get('API_PATH')
.then(res => {
const user = res.data[0].username;
const password = res.data[0].password;
const username = this.state.username;
const passwordEntered = this.state.password;
if(username === '' && passwordEntered === ''){
document.getElementById('status').innerHTML = '<p>Please Enter A Valid Username and Password</p>';
}else if(user === username && passwordEntered === password){
document.getElementById('status').innerHTML = '';
console.log(user, password)
}else{
document.getElementById('status').innerHTML = '<p>Please Enter A Valid Username and Password</p>';
}
})
.catch(error => {
console.log(error);
});
}
onSubmit=(e)=>{
e、 预防默认值();
get('API\u PATH')
。然后(res=>{
const user=res.data[0]。用户名;
const password=res.data[0]。密码;
const username=this.state.username;
const passwordEntered=this.state.password;
如果(用户名==''&&密码输入==''){
document.getElementById('status')。innerHTML='请输入有效的用户名和密码';
}else if(用户===用户名和密码输入===密码){
document.getElementById('status')。innerHTML='';
console.log(用户、密码)
}否则{
document.getElementById('status')。innerHTML='请输入有效的用户名和密码';
}
})
.catch(错误=>{
console.log(错误);
});
}
这是我用的表格
<Form
>
<Form.Row>
<Form.Group as={Col}>
<Form.Label>Username</Form.Label>
<Form.Control
type="text"
name="username"
id="username"
value={this.state.value}
onChange={this.handleChange}
>
</Form.Control>
</Form.Group>
<Form.Group as={Col}>
<Form.Label>Password</Form.Label>
<Form.Control
type="text"
id="password"
name="password"
value={this.state.value}
onChange={this.handleChange}
/>
</Form.Group>
</Form.Row>
<Button className="btn btn-sm btn-light" onClick={this.onSubmit}>
<i style={redColor} className="fas fa-sign-in-alt"></i> Login
</Button>
</Form>
用户名
密码
登录
where's alert(json)?@bhojendraurauniyar我曾在何处保持警惕,但它不起作用。我不知道该在哪里发出警报(然后你的问题对我们来说就不清楚了。我需要在获取数据时获取数据。。这就是我现在所需要的一切@bhojendraauniyarit很好。。如何从json数据中获取用户名和密码?@LazarNikolic?在console.log myJson.results[0]中使用这个代替json.stringify。login.username,myJson.results[0].login.password,您将获得用户名和密码。如果您喜欢我的答案,请您投票或将其标记为已解决。