Security News
Opengrep Emerges as Open Source Alternative Amid Semgrep Licensing Controversy
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
redux-react-native-session
Advanced tools
Keep your session sync with localStorage and Redux :key:
Redux React Session provides an API that allows to manage sessions through the app, with authorization function for react-router and a persisted session.
yarn:
yarn add redux-react-session
npm:
npm install redux-react-session --save
import { combineReducers } from 'redux';
import { sessionReducer } from 'redux-react-session';
const reducers = {
// ... your other reducers here ...
session: sessionReducer
};
const reducer = combineReducers(reducers);
import { createStore } from 'redux';
import { sessionService } from 'redux-react-session';
const store = createStore(reducer)
sessionService.initSessionService(store);
The examples simulates a simple login/logout that sends requests to a server.
cd examples/example
npm install
npm start
cd examples/react-router-v4-example
npm install
npm start
Initialize an instance of the session service.
Options:
checkAuth
function"login"
): Path used when a session is rejected or doesn't existExample:
const options = { refreshOnCheckAuth: true, redirectPath: '/home', driver: 'COOKIES' };
sessionService.initSessionService(store, options);
Force to refresh the Redux Store from the localStorage.
Note: this function is called once the session service is initialized
Authorization function for react-router to restrict routes, it checks if exist a session and redirects to the redirectPath
Example:
import React from 'react';
import { Route, IndexRoute } from 'react-router';
import { sessionService } from 'redux-react-session';
import App from './components/App';
import HomePage from './containers/HomePage';
import LoginPage from './containers/LoginPage';
export default (
<Route path="/" component={App}>
<IndexRoute onEnter={sessionService.checkAuth} component={HomePage} />
<Route path="login" component={LoginPage} />
</Route>
);
Note: If you're using react-router v4 this function it's not necessary. Check out the react-router-v4-example
Note: This function could be used in the client side as well as the server side.
Saves the session object in the storage/cookies and changes the authenticated
flag to true
in Redux Store
Returns the current session if exists
Example:
loadSession
.then(currentSession => console.log(currentSession))
.catch(err => console.log(err))
Deletes the current session from the storage/cookies
Saves the user object in the storage/cookies and in the Redux Store
Returns the current user if exists
Deletes the current user from the storage/cookies
redux-react-session
also provides methods to keep the session with server rendering using cookies. So the session will work on the server side as well as the client side.
Initialize an instance of the server session service.
This function is used in the server.js
to initialize a session service instance in each request.
// server.js
import { sessionService } from 'redux-react-session';
// ...
app.use((req, res) => {
const store = createStrore();
sessionService.initServerSession(store, req);
// ...
}
// ...
Initialize an instance of the client session service, IMPORTANT to set the option 'COOKIES'(this is the way that the client send the session data to the server).
This function is used in the client.js
of the server rendering to initialize a session service instance.
// client.js
import { createStore } from 'redux';
import { sessionService } from 'redux-react-session';
const store = createStore(reducer)
initSessionService(store, { driver: 'COOKIES' });
FAQs
Keep your session sync with the storage and redux
The npm package redux-react-native-session receives a total of 10 weekly downloads. As such, redux-react-native-session popularity was classified as not popular.
We found that redux-react-native-session demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.