Comments (7)
The older versions didn't allow <Router/>
too.
Perhaps some ancient ones did, but that would be more than a year before now.
No need to specify any <Router/>
element, just pass the root <Route/>
to it.
If any questions arise post them in this thread.
I'm closing it for now.
from react-pages.
Just wondering will my login Component RequiredRole
using this.context.router.replace(nextPath)
work?
I have a login component RequiredRole
added to my <Route>
like this
import RequireRole from './RequireRole/RequireRole';
import {ROLE_USER, ROLE_PUBLIC} from '../constants/RecordAttrs';
<Route
component={RequireRole}`
requiredRole={[ROLE_PUBLIC, ROLE_USER]}
<Route path="/" component={LandingPage} />
</Route>
and in my RequiredRole component is like this
function pathForUserNotPermitted(currentRole, requiredRoles, redirectMap) {
const notPermitted = requiredRoles.indexOf(currentRole) === -1;
return notPermitted ? redirectMap[currentRole] : undefined;
}
class RequireRole extends Component {
static propTypes = {
'route': PropTypes.object.isRequired,
'children': PropTypes.any,
'location': PropTypes.object.isRequired,
'dispatch': PropTypes.func.isRequired,
'auth': PropTypes.object,
'routing': PropTypes.object.isRequired,
};
static contextTypes = {
'router': PropTypes.object.isRequired,
};
componentWillMount() {
// For first time getting to component, componentWillMount will be triggered.
const nextPath = pathForUserNotPermitted(
this.props.auth.role,
this.props.route.requiredRole,
this.props.route.redirectMap
);
// permission checking
if (nextPath) {
this.context.router.replace(nextPath);
}
}
...
Thanks.
from react-pages.
Format the source code appropriately
from react-pages.
Just formatted, thanks.
from react-pages.
It should work.
Try it.
It would be much quicker if you just tested if it works instead of creating an issue and waiting for a reply.
I didn't test such scenarios but router
should be present in context
.
from react-pages.
If you're interested which Authentication and Authorization scheme I'm using here's a description:
https://github.com/catamphetamine/react-website#http-authentication
('Authentication and authorization using access tokens" expandable section)
There are some technical details which are rather complex but for now it's how it works where I work.
from react-pages.
Thanks for suggestions, I'll have a look.
from react-pages.
Related Issues (20)
- Access store outside React scope HOT 4
- Adding json-ld script tags (dynamic) in SSR pages HOT 1
- Can't add custom handler for `@@react-isomorphic-render/goto` event HOT 4
- Error running npm install HOT 1
- The test is failed. (npm install) HOT 1
- usage directions fail at npm install babel-node HOT 1
- SSR middlewares HOT 2
- Http utility in Server Side HOT 11
- how can i run this site? HOT 8
- How modify @preload {client: true} configuration HOT 5
- How to capture an event type HOT 2
- Crash in long running production process (v 2.0.13) HOT 2
- Module not found: Error: Can't resolve './aboutPageReducer' in ...... HOT 1
- Error instantiating router HOT 5
- No way to detect authentication before using http client HOT 2
- [SSR] Access to the request headers HOT 4
- Enable configuration entry for HTTP `on_before_send` HOT 8
- Invalid Content-Type for get and multipart requests HOT 3
- Moving from isomorphic to website causes render service error HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-pages.