https://blog.csdn.net/qq_36822018/article/details/83028661(先看看这个

https://blog.csdn.net/weixin_34268169/article/details/88834074(再先看看这个

https://www.jianshu.com/p/a735096f3eda(注册登录

方法1

class Container extends Component {
render() {
console.log("一直执行的根")
return (
<Switch>
{
router.map((router, index) => { // const login = document.cookie.includes('login=true')
// sessionStorage.setItem('login', 1)
// sessionStorage.clear();
const login = sessionStorage.getItem("login");
if (login) { // 如果登录了, 返回正确的路由
return <Route exact key={index} path={router.path}
render={
props => (
<router.component {...props} routes={router.routes} />
) }
/>
} else { // 没有登录就重定向至登录页面
// alert("你还没有登录哦, 确认将跳转登录界面进行登录!")
return <Redirect key={'login'} to={{
pathname: '/login',
state: {
from: ''
}
}} />
}
})
}
</Switch>
);
} } export default Container;

https://www.jianshu.com/p/ad7e6ec86ba7

import React from 'react'
import { Route, Redirect } from 'react-router-dom'
// 这个组件将根据登录的情况, 返回一个路由
const PrivateRoute = ({component: Component, ...props}) => {
// 解构赋值 将 props 里面的 component 赋值给 Component
return <Route {...props} render={(p) => {
const login = document.cookie.includes('login=true')
if (login){ // 如果登录了, 返回正确的路由
return <Component />
} else { // 没有登录就重定向至登录页面
alert("你还没有登录哦, 确认将跳转登录界面进行登录!")
return <Redirect to={{
pathname: '/login',
state: {
from: p.location.pathname
}
}}/>
}
}}/>
}
export default PrivateRoute

方法2 不知道是否有坑

https://cloud.tencent.com/developer/ask/128189

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Login from './components/Login/Login'
import Home from './components/Home/Home'
import store from './store/store'
import {Provider} from 'react-redux';
import history from './history/history';
import {Router,Route,Switch,Redirect} from 'react-router-dom'
import {connect} from 'react-redux' class App extends Component {
render() {
let storelogginState=store.getState();
let logginState=storelogginState.loginReducer.loggedIn
console.log('store',logginState)
return (
<Router history={history}>
<div className="App">
<Provider store={store}>
<Switch>
<Route exact path="/" component={Login}/>
<Route exact path="/home" render={()=>(
this.props.loginReducer.loggedIn?(<Home/>):(<Redirect to="/"/>)
) }/>
</Switch>
</Provider>
</div>
</Router> );
}
}

方法3

export default () => (
<Router history={hashHistory}>
<Route path="/" component={base.app} onEnter={isLogin}>
<IndexRoute component={base.example} />
<Route path="/desk$/index" component={base.example} />
<Route path="/socketReceive" component={base.socketReceive} /></Route>
<Route path="/login" component={base.login} />
<Route path="*" component={base.notfound} />
</Router>
)
// 进入路由的判断
export const isLogin = (nextState, replaceState) => {
if (nextState.location.query && nextState.location.query.ticket) { // 如果url自带ticket
sessionStorage.setItem('token', 'ticket')
}
if (nextState.location.query && nextState.location.query.key) { // 如果url自带key
sessionStorage.setItem('token', 'key')
}
const token = sessionStorage.getItem('token')
if (!token) { // 没有token,那就返回首页
replaceState('/login')
}
}

利用HTML5的history.replacestate()修改当前页面的URL

https://blog.csdn.net/mmcrsx_blog/article/details/81124269

方法4

可以参考vue的

https://www.cnblogs.com/dianzan/p/11319821.html

react的登录逻辑的更多相关文章

  1. 网站实现微信登录之回调函数中登录逻辑的处理--基于yii2开发的描述

    上一篇文章网站实现微信登录之嵌入二维码中描述了如何在自己的登录页面内嵌入登录二维码,今天的这篇文章主要是描述下在扫码成功之后微信重定向回网站后登录逻辑的处理,其实也就是验证身份信息,授权用户登录的逻辑 ...

  2. 1、IOS开发--iPad之仿制QQ空间(登录界面搭建+登录逻辑实现)

    开始搭建登录界面 登录界面效果图: 相关的图片资源下载百度云备份链接: http://pan.baidu.com/s/1o71cvMU 密码: 2h7e 步骤开始: 设置辅助窗口的位置在下方 快捷键o ...

  3. ABP+AdminLTE+Bootstrap Table权限管理系统第七节--登录逻辑及abp封装的Javascript函数库

    经过前几节,我们已经解决数据库,模型,DTO,控制器和注入等问题.那么再来看一下登录逻辑.这里算是前面几节的一个初次试水. 首先我们数据库已经有的相应的数据. 模型和DTO已经建好,所以我们直接在服务 ...

  4. django登录逻辑

    django-restframework中已经实现了登录逻辑,只需要安装配置就可以使用 pip install djangorestframework-jwt REST_FRAMEWORK = { ' ...

  5. ASP.NET WebAPI 双向token实现对接小程序登录逻辑

    最近在学习用asp.net webapi搭建小程序的后台服务,因为基于小程序端和后台二者的通信,不像OAuth(开放授权),存在第三方应用.所以这个token是双向的,一个是对用户的,一个是对接口的. ...

  6. ABP+AdminLTE+Bootstrap Table权限管理系统第七节--登录逻辑及几种abp封装的Javascript函数库

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期         简介 经过前几节,我们已经解决数据库,模型,DTO,控制器和注入等问题.那么再来看一下登录逻辑.这 ...

  7. [py][mx]django处理登录逻辑

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

  8. tp 例子=登录逻辑

    <?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller{ ...

  9. ngx_lua实现登录逻辑

    最近在公司做一个简单的portal,本来很简单的,只用ngx_lua就可以实现所有的业务逻辑,不需要upstream上游服务.但被要求接入公司内部的用户校验系统,说白了就是一个登录过程,只允许公司内部 ...

随机推荐

  1. 机器学习-HMM隐马尔可夫模型-笔记

    HMM定义 1)隐马尔科夫模型 (HMM, Hidden Markov Model) 可用标注问题,在语音识别. NLP .生物信息.模式识别等领域被实践证明是有效的算法. 2)HMM 是关于时序的概 ...

  2. 机器学习xgboost参数解释笔记

    首先xgboost有两种接口,xgboost自带API和Scikit-Learn的API,具体用法有细微的差别但不大. 在运行 XGBoost 之前, 我们必须设置三种类型的参数: (常规参数)gen ...

  3. Sping Aop日志实现(六)--日志查询功能

    最终效果: 日志查询流程分析: Controller代码: Mapper:

  4. [Done] Codeforces Round #562 (Div. 2) 题解

    A - Circle Metro 模拟几百步就可以了. B - Pairs 爆搜一下,时间复杂度大概是 $O(4 * n)$ Code: 56306723 C - Increasing by Modu ...

  5. 玩转【Mock.js】,前端也能跑的很溜

    现在开发已经是前后端分离了,前端和后端可以同时进行开发,互不影响,但是有些时候后端开发的接口慢于前端,导致前端需要等待后端的接口完成才能完成前后端对接,为了解决这个痛点,出现了模拟接口数据的方案,目前 ...

  6. 利用WkHtmlToPdf,把H5 转成PDF

    工具下载地址: 链接:https://pan.baidu.com/s/1TSq2WWZcvPwuIfPRHST-FA 提取码:wkx8 原理: 通过IIS访问页面,利用WkHtmlToPdf.exe, ...

  7. Psychedelic therapy

    Psychedelic therapy Psychedelic therapy早期在美国应该取得了相当大的成功,方法是在给予受试者充分的心理准备后,一次性运用极高剂量的LSD(0.3−0.6毫克),试 ...

  8. js中0.1+0.2 与0.3的对比

    Math.abs(0.1+0.2-0.3)<=Number.EPSILON

  9. Java反射机制、注解及JPA实现

    1.java反射概述 JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称 ...

  10. web安全在线工具梳理

    目录: (一)搜索引擎语法一.百度.国内二.bing(必应).微软的三.google.国外 (二)网络空间搜索引擎用于查找网络空间的目标设备一.撒旦.国外二.钟馗之眼.国内三.佛法.国内 (三)在线w ...