javascript 使用Auth0 +路由器实现应用程序组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 使用Auth0 +路由器实现应用程序组件相关的知识,希望对你有一定的参考价值。

import React, { Component } from 'react';
import {Route} from 'react-router-dom';
import Home from './Home';
import Profile from './Profile';
import Nav from './Nav';
import Callback from './Callback';
import Public from './Public';
import Private from './Private';
import Courses from './Courses';
import Auth from './Auth/Auth';
import PrivateRoute from './PrivateRoute';
import AuthContext from './AuthContext';

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      auth: new Auth(this.props.history),
      tokenRenewalComplete: false
    };
  }

  componentDidMount() {
    this.state.auth.renewToken(() => {
      this.setState({ tokenRenewalComplete: true })
    });
  }

  render() {
    const { auth } = this.state;
    if (!this.state.tokenRenewalComplete) return "Loading...";
    return (
      <AuthContext.Provider value={auth}>
        <Nav auth={auth} />
          <div className="body">
            <Route
              path="/"
              exact
              render={props => <Home auth={auth} {...props}/>} />
            <Route
              path="/callback"
              render={props => <Callback auth={auth} {...props}/>} />
            <PrivateRoute
              path="/profile"
              component={Profile} />
            <Route path="/public" component={Public} />
            <PrivateRoute
              path="/private"
              component={Private} />
            <PrivateRoute
              path="/courses"
              component={Courses}
              scopes={["read:courses"]} />
        </div>
      </AuthContext.Provider>
    );
  }
}

export default App;

以上是关于javascript 使用Auth0 +路由器实现应用程序组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Javascript 中使用路由

JavaScript 表单使用 Ajax 和 Laravel 路由提交到数据库

如何使用 ASP.NET MVC 5 中的 JavaScript 在运行时使用路由值增加 actionlink?

在对象赋值解构Javascript中使用冒号

在 laravel 刀片路由中使用 JavaScript 变量

使用 javascript 将路由值传递给 Html.BeginForm