我正在寻找一种方法,当用户授权时,我存储SQLiteDataReader r= command.ExecuteReader();
while (reader.Read())
{
DataRow dataRow = new DataRow();
for (int i = 0; i < l.Count; i++)
{
dataRow[listCols[i]] = r[i];
}
dt.Rows.Add(dataRow);
}
where 'l' is list of DataColumn
,所以每次我都可以检查用户是否user authorized status
。但是,当我执行以下代码时,用户未获得授权:(Master.jsx - &gt; render())
authorized
我通过<Route exact path="/" render={() => {
console.log('this.props.authed: ', this.props.authed, "this.props: ", this.props)
return (
this.props.authed
? <Home />
: <Redirect from="/" to="/login"/>
)}
}/>
中的firebase
检查用户授权,并将其存储为以下代码:(Master.jsx - &gt; componentWillMount())
componentWillMount()
问题是componentWillMount = () => {
firebaseAuth().onAuthStateChanged((user) => {
if (user) {
this.props.login(user)
} else {
this.props.logout()
}
})
}
之后会componentWillMount
执行,因此用户将在<Route ..
之后获得授权。我有办法解决它吗?
答案 0 :(得分:0)
这是react-redux的经典用例。我建议在服务器端处理所有身份验证,其中服务器响应授权或未授权用户的真或假。在此之前,您可以在UI上显示加载图标。
但是,如果您想继续并希望在UI上验证用户身份,请查看react-redux。
基本上你必须这样做
用户登录时
当用户重新加载/打开页面时
希望有所帮助!