91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React從react-router路由上做登陸驗證控制的方法

發布時間:2020-10-03 15:56:52 來源:腳本之家 閱讀:453 作者:戀月 欄目:web開發

本文介紹了React從react-router路由上做登陸驗證控制的方法,分享給大家,具體如下:

驗證代碼

import React from 'react'
import {connect} from 'react-redux';

function requireAuthentication(Component) {
 // 組件有已登陸的模塊 直接返回 (防止從新渲染)
 if (Component.AuthenticatedComponent) {
  return Component.AuthenticatedComponent
 }

 // 創建驗證組件
 class AuthenticatedComponent extends React.Component {
  static contextTypes = {
   router: React.PropTypes.object.isRequired,
  }

  state = {
   login: true,
  }

  componentWillMount() {
   this.checkAuth();
  }

  componentWillReceiveProps(nextProps) {
   this.checkAuth();
  }

  checkAuth() {

   // 判斷登陸
   const token = this.props.token;
   const login = token ? token.login : null;


   // 未登陸重定向到登陸頁面
   if (!login) {
    let redirect = this.props.location.pathname + this.props.location.search;
    this.context.router.push('/login?message=401&redirect_uri=' + encodeURIComponent(redirect));
    return;
   }

   this.setState({login});
  }

  render() {
   if (this.state.login) {
    return <Component {...this.props}/>
   }
   return ''
  }
 }

 // 不使用 react-redux 的話直接返回
 // Component.AuthenticatedComponent = AuthenticatedComponent
 // return Component.AuthenticatedComponent


 function mapStateToProps(state) {
  return {
   token: state.token,
  };
 }

 function mapDispatchToProps(dispatch) {
  return {};
 }
 Component.AuthenticatedComponent = connect(mapStateToProps, mapDispatchToProps)(AuthenticatedComponent);
 return Component.AuthenticatedComponent
}

路由上使用

<Router history={browserHistory}>
 <Route path="/admin" component={requireAuthentication(AdminComponent)} />
</Router>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南溪县| 菏泽市| 大同县| 榆社县| 曲水县| 祁东县| 米泉市| 中超| 岑巩县| 凤城市| 沅江市| 武陟县| 南丹县| 海口市| 呈贡县| 久治县| 巩留县| 哈密市| 昌江| 敦煌市| 定日县| 交城县| 方山县| 搜索| 叶城县| 洪雅县| 南安市| 呼图壁县| 错那县| 诏安县| 张掖市| 平顺县| 吐鲁番市| 伊川县| 行唐县| 卫辉市| 出国| 鹤山市| 威信县| 庄河市| 松溪县|