{"_id":"@byu-law/feathers-reduxify-authentication","_rev":"3-8b2fc9faaa623f7d0834ea1df48bd635","name":"@byu-law/feathers-reduxify-authentication","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@byu-law/feathers-reduxify-authentication","version":"1.0.0","description":"Wrap feathers-client.authentication so it works with Redux, as well as authentication, authorization packages for React-Router.","main":"lib/","directories":{"lib":"lib"},"scripts":{"copy":"rm -rf lib/ && mkdir lib && cp -r src/ lib/","babel":"babel src/ --out-dir lib --presets babel-preset-es2015,babel-preset-stage-0","babel:watch":"babel src/ --watch --out-dir lib --presets babel-preset-es2015,babel-preset-stage-0","mocha":"mocha test/  --reporter spec --compilers js:babel-core/register","mocha:only":"mocha test/ --reporter spec","eslint":"eslint src/. test/. --ext .js,.jsx .","build":"npm run copy && npm run babel","test":"npm run build && npm run eslint && npm run mocha","test:build":"npm run build && npm run mocha","test:only":"npm run eslint && npm run mocha:only","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- --reporter spec test/*","watch":"npm run copy && npm run babel:watch","git:push":"npm run build && git push origin && git push origin --tags","npm:patch":"npm version patch && npm publish","npm:minor":"npm version minor && npm publish","npm:major":"npm version major && npm publish","npm:updates":"npm-check-updates"},"repository":{"type":"git","url":"git+https://github.com/harrisbmark/feathers-reduxify-authentication.git"},"keywords":["feathers","feathersjs","authentication","react-router","redux"],"author":{"name":"Mark Harris","email":"helo10mark@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/harrisbmark/feathers-reduxify-authentication/issues"},"homepage":"https://github.com/harrisbmark/feathers-reduxify-authentication","dependencies":{"debug":"^2.2.0","object.assign":"^4.0.4"},"devDependencies":{"babel-cli":"^6.14.0","babel-core":"^6.14.0","babel-eslint":"^6.1.2","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.15.0","babel-preset-es2015":"^6.14.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","coveralls":"^2.11.12","eslint":"^3.5.0","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.15.0","eslint-plugin-jsdoc":"^2.3.1","eslint-plugin-jsx-a11y":"^2.2.2","eslint-plugin-react":"^6.2.1","istanbul":"^0.4.5","mocha":"^3.0.2","redux-actions":"0.12.0"},"engines":{"node":">=5.0.0","npm":">=3.8.0"},"gitHead":"30523cee552da37e3802c3288fe62ed830dca197","_id":"@byu-law/feathers-reduxify-authentication@1.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-xMiCD8IuRJzIGRBD8z/gmhybKWJaNkMm4+1s/pgEHDum5Jq/R1ZiJAEQlUza1BudeBN2o03qGx0ieWxEmsNDZw==","shasum":"7ee2cb6ace559a86791581603bdf1f32969d444d","tarball":"https://registry.npmjs.org/@byu-law/feathers-reduxify-authentication/-/feathers-reduxify-authentication-1.0.0.tgz","fileCount":5,"unpackedSize":10101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdct3zCRA9TVsSAnZWagAAxSsQAJmno/RuXu6h3tuqabit\n6e7EPtmcJe+bvpv9IbT7X6xOXoi8hrA5OhJklGIU5rCn+K/X0Bg2/MAPrAVi\nwntTkVH2C9JdVH9hIQj4NJvJryqXtwQN66Y04A8O/iVu5HGom6A5kytXmbEE\nUCeiZs6/w1kDm9qDrsl7EHu4SfjwFetK1O5vLOkkfSrIL5KJj2jgBlbcwndD\nVYegYIbUjXj3egyEfAXCjx4G3Cn/m8BBmETYvrDRtpc2nVBbXMkBshxTX7ec\nQfpUc/2fNEJjmj/PdhMRNl6Aenf0uc1F3C21jigdVDQX59GV7lO5dGVhtXGg\nukGZ0pZFfn/CUr9G10AR5+/AsW+Rl/EjhSn1I93rk6Zo37MTc7221kUEbfzG\neJCz3q7y/HsjBvcVMPApr9TUt2ICyR7TxMVcOe+IytJDSouw/Y5y9uh2JZwJ\nhfmTxAPVZP5WBn9PZYTBagQQHE7eAnYuBWrsIZveDsVJoQWbxXPElZVkewcl\npUIZFPgL2BYcobPv1DaSNebWY35/QWphjRokwkAPaWPMU1jB8oObmeKsSNun\n6dgUWU6aR0dKh65HlG3doqm8pdhf7FmDfytLw85z1Oi/rGojpUl3WqoKJojy\niVU8HLCyzfFKd0Ro3W3MAx/57x4/navTqSxAcpDwOcFva9GOuH5KrVU+ETag\nBORg\r\n=/FLN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH5wHFpXwrvA+jdHxWTtUHEVdApfmLTIDVi0GdZJiM+lAiEAzlMsy9ETp4pO0X994t/A+3a8Sk+EelQLpE3WLZaZlbY="}]},"maintainers":[{"name":"harrisbmark","email":"helo10mark@gmail.com"}],"_npmUser":{"name":"harrisbmark","email":"helo10mark@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/feathers-reduxify-authentication_1.0.0_1567809010600_0.2964986137501757"},"_hasShrinkwrap":false},"1.0.1":{"name":"@byu-law/feathers-reduxify-authentication","version":"1.0.1","description":"Wrap feathers-client.authentication so it works with Redux, as well as authentication, authorization packages for React-Router.","main":"lib/","directories":{"lib":"lib"},"scripts":{"copy":"rm -rf lib/ && mkdir lib && cp -r src/ lib/","babel":"babel src/ --out-dir lib --presets babel-preset-es2015,babel-preset-stage-0","babel:watch":"babel src/ --watch --out-dir lib --presets babel-preset-es2015,babel-preset-stage-0","mocha":"mocha test/  --reporter spec --compilers js:babel-core/register","mocha:only":"mocha test/ --reporter spec","eslint":"eslint src/. test/. --ext .js,.jsx .","build":"npm run copy && npm run babel","test":"npm run build && npm run eslint && npm run mocha","test:build":"npm run build && npm run mocha","test:only":"npm run eslint && npm run mocha:only","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- --reporter spec test/*","watch":"npm run copy && npm run babel:watch","git:push":"npm run build && git push origin && git push origin --tags","npm:patch":"npm version patch && npm publish","npm:minor":"npm version minor && npm publish","npm:major":"npm version major && npm publish","npm:updates":"npm-check-updates"},"repository":{"type":"git","url":"git+https://github.com/harrisbmark/feathers-reduxify-authentication.git"},"keywords":["feathers","feathersjs","authentication","react-router","redux"],"author":{"name":"Mark Harris","email":"helo10mark@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/harrisbmark/feathers-reduxify-authentication.git/issues"},"homepage":"https://github.com/harrisbmark/feathers-reduxify-authentication.git","dependencies":{"debug":"^2.2.0","object.assign":"^4.0.4"},"devDependencies":{"babel-cli":"^6.14.0","babel-core":"^6.14.0","babel-eslint":"^6.1.2","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-runtime":"^6.15.0","babel-preset-es2015":"^6.14.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","coveralls":"^2.11.12","eslint":"^3.5.0","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.15.0","eslint-plugin-jsdoc":"^2.3.1","eslint-plugin-jsx-a11y":"^2.2.2","eslint-plugin-react":"^6.2.1","istanbul":"^0.4.5","mocha":"^3.0.2","redux-actions":"0.12.0"},"engines":{"node":">=5.0.0","npm":">=3.8.0"},"gitHead":"30523cee552da37e3802c3288fe62ed830dca197","_id":"@byu-law/feathers-reduxify-authentication@1.0.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-dNpW4N/V12QdUeKHFIwWcd5xEcpmgH1R/KJd/MhK+ZiwdNoRWfwOyPxZUBb8zakIQtsPZKYlzDjAb9PsbqDCyQ==","shasum":"37d055f8fa9e3e30b9c52a599508b4da9d201c68","tarball":"https://registry.npmjs.org/@byu-law/feathers-reduxify-authentication/-/feathers-reduxify-authentication-1.0.1.tgz","fileCount":6,"unpackedSize":16922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcuHQCRA9TVsSAnZWagAAxAIP/1zbwH7KA+BtmP+m39m4\nVbRL7H46TxCKIS1+id7R+RA5U3KC6RTmBVnwRWKc3uFxkPrqAV0qIjex4+8n\n8GFaGdFN2MB0qd2e62OS2FLBgtwNONGjhGCDYEmO5d9wgvYAf6hP0jQhDpVO\nWSXBv2HD6VE+4BzCzxYORHVJNc1762ewgJQzRvBzeqf2ZsB/y90NUbtXyTOp\nItfs1u3BvK2f/OPRhgvK9M08sNGa0GThx8WITE5rco+nWBkQgfqlY1AO+l7+\nC+Yz5UJnaTmA1HEtByfSVo82sg6MRgYJQjyyILIjqTS/XN2zKb8M4NJeRVAv\ntzjBg5e4mWwPE9rcUsDlzWineiTOboX8rRojDxq83oSkmSLTR+DmBQQAtPnb\naoyeqB6klHKKnnsvWxLC0bJDzv2CcAsvUVPW+yaHfhvTXpX5q8peo4aGQpN7\n5Uqp9cZAbY1jL+Y2dIMG00bKOZo7udfu0TLwxxLSrO5dMB2u0vZKrIwp8zK0\nLtzbHJ+mP7dliEJiur2Hc/DDUtfrKwl+PjvsrgA5UEdTeiQ8CavaYiyrwGCF\nj+cdZmYK6Fvw49iBi/xfKyb0Un+xJE+0cUVfFySSJL01cWi//Iz+lDDtXyuA\nVzEZFVvOSzXScHUkAJyLvJ67ZQln/5LfcbzErC0BB3py7Y0hSLp1n42yqC5k\nlEeg\r\n=FgLt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDX3zf2H8ZV4JO45rs/8lOHn2AIUR0oYjjGSt/9m3jRjQIhAPRZkaKXuUZAjYMdwxCzVOkBjRV24VPnQOsq8gj8Fp+f"}]},"maintainers":[{"name":"harrisbmark","email":"helo10mark@gmail.com"}],"_npmUser":{"name":"harrisbmark","email":"harrism@law.byu.edu"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/feathers-reduxify-authentication_1.0.1_1567810000233_0.5307332876879329"},"_hasShrinkwrap":false},"1.1.0":{"name":"@byu-law/feathers-reduxify-authentication","version":"1.1.0","description":"Wrap feathers-client.authentication so it works with Redux, as well as authentication, authorization packages for React-Router.","main":"lib/","directories":{"lib":"lib"},"scripts":{"copy":"rm -rf lib/ && mkdir lib && cp -r src/ lib/","babel":"babel src/ --out-dir lib --presets babel-preset-es2015,babel-preset-stage-0","babel:watch":"babel src/ --watch --out-dir lib --presets babel-preset-es2015,babel-preset-stage-0","mocha":"mocha test/  --reporter spec --require babel-core/register","mocha:only":"mocha test/ --reporter spec","eslint":"eslint src/. test/. --ext .js,.jsx .","build":"npm run copy && npm run babel","test":"npm run build && npm run eslint && npm run mocha","test:build":"npm run build && npm run mocha","test:only":"npm run eslint && npm run mocha:only","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- --reporter spec test/*","watch":"npm run copy && npm run babel:watch","git:push":"npm run build && git push origin && git push origin --tags","npm:patch":"npm version patch && npm publish","npm:minor":"npm version minor && npm publish","npm:major":"npm version major && npm publish","npm:updates":"npm-check-updates"},"repository":{"type":"git","url":"git+https://github.com/harrisbmark/feathers-reduxify-authentication.git"},"keywords":["feathers","feathersjs","authentication","react-router","redux"],"author":{"name":"Mark Harris","email":"helo10mark@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/harrisbmark/feathers-reduxify-authentication.git/issues"},"homepage":"https://github.com/harrisbmark/feathers-reduxify-authentication.git","dependencies":{"debug":"^4.1.1","object.assign":"^4.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-plugin-transform-es2015-destructuring":"^6.23.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","chai":"^4.2.0","coveralls":"^3.0.6","eslint":"^6.3.0","eslint-config-airbnb":"^18.0.1","eslint-plugin-import":"^2.18.2","eslint-plugin-jsdoc":"^15.9.1","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.14.3","istanbul":"^0.4.5","mocha":"^6.2.0","redux-actions":"2.6.5"},"engines":{"node":">=5.0.0","npm":">=3.8.0"},"gitHead":"30523cee552da37e3802c3288fe62ed830dca197","_id":"@byu-law/feathers-reduxify-authentication@1.1.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-/b7hXsZFf1vNKf4Q8Arru/lWik+iZ0CODphq1vBwNKCU9ecs3RtcAhVzJ5jZEOQ/cPPLFYNzSOvWoMwGJMxUZA==","shasum":"8b63a9bc13122c53e5f61a7a2c1753a5960e5710","tarball":"https://registry.npmjs.org/@byu-law/feathers-reduxify-authentication/-/feathers-reduxify-authentication-1.1.0.tgz","fileCount":6,"unpackedSize":16910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcuRLCRA9TVsSAnZWagAAQZEP/16yP5jDXaliN9XN7q/c\nnOwgIUDDM0G6Dk5BLNZyly2vJoXJ7KT1RHF70XjqQo5gYCYLIazQny3RpK5w\nDGssEaihj+4s9mk4iR7rfUq8qIxb6T1P7VPqS6vK3JjDxJTywUBVH+8mkbK2\nWfCfMqmCQz/ecUW38Qzeg2uVyOeJhd1QnPEKv9xZmpGo3PkjJHgPY9jZJ+3q\nOOdtCCniXkKKsehilvzjPRFhT9YtJzJ81NJRDHyhTG4zI+fvS2+mzujVvZKi\nniWxTkuET3POZ8qNbpvZvDG+SpSQTN3jUSiX/LgloWhfrHNhey6a4CZQF9vM\najW45QeZJwnQEq54s6rS5sTPDrlJa0t18PfK/FC+8fE8SzLo2MK4+BtL3Agu\nmBgl3QCcIOhJ9Z++UP+Gh9l6Rk+NtsX9OhvcMuCg6Xq1K7YTRvAEOn0Fvuvx\nnpofkLmJeUA6iCVkv+BRj4toJtlAu6zYqdjdIvoQIM3T9l+89Y2uBb4LE5EH\naQy/b49QaHFlMEiajnOBystB5EwMjpa98q/adJqGU5/sTpwdOkjJELUMuF8I\nE9HjFmq/p2VmPJwUqSMdvNBZ+cGJvO7lR+qhW+Y4RC0fLNBbjPItRoD6CE+a\n+zM6F+3SIo9OYwY2dG4OE7ImA7st9W7MBkjChnb9xDUeRvQi+HJtIHTlKeFf\nzwVe\r\n=VNz9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUZG3WEEkA067nAamOr6JFc8FOldyhF76KYIqN28pxkwIgCTloOrAw6prZk+BgQi4dAYnyMmwiyDNJu8EyApSNavQ="}]},"maintainers":[{"name":"harrisbmark","email":"helo10mark@gmail.com"}],"_npmUser":{"name":"harrisbmark","email":"harrism@law.byu.edu"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/feathers-reduxify-authentication_1.1.0_1567810635014_0.2832709396049238"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-06T22:30:10.420Z","1.0.0":"2019-09-06T22:30:10.710Z","modified":"2022-04-04T21:22:50.677Z","1.0.1":"2019-09-06T22:46:40.346Z","1.1.0":"2019-09-06T22:57:15.154Z"},"maintainers":[{"name":"harrisbmark","email":"helo10mark@gmail.com"}],"description":"Wrap feathers-client.authentication so it works with Redux, as well as authentication, authorization packages for React-Router.","homepage":"https://github.com/harrisbmark/feathers-reduxify-authentication.git","keywords":["feathers","feathersjs","authentication","react-router","redux"],"repository":{"type":"git","url":"git+https://github.com/harrisbmark/feathers-reduxify-authentication.git"},"author":{"name":"Mark Harris","email":"helo10mark@gmail.com"},"bugs":{"url":"https://github.com/harrisbmark/feathers-reduxify-authentication.git/issues"},"license":"MIT","readme":"# Forked Changes:\nForked from https://github.com/eddyystop/feathers-reduxify-authentication\n1) Changed the user payload to reflect the options passed for initialization. For example:\n    ```javascript\n   const feathersAuthentication = reduxifyAuthentication(feathersClient, {\n       user: 'member' // Changing the 'user' option to me 'member'\n   });\n    ```\n   Now the state will hold the payload for the 'member' object instead of 'user.'\n\n# feathers-reduxify-authentication\nWrap feathers-client.authentication so it works transparently with Redux, as well as authentication, authorization packages for React-Router.\n\n[![Build Status](https://travis-ci.org/eddyystop/feathers-reduxify-authentication.svg?branch=master)](https://travis-ci.org/eddyystop/feathers-reduxify-authentication)\n\n- Work with standard `feathers-client.authentication` on the client.\n- Dispatch feathers authentication and logout to Redux.\n- Integrate with `react-router` and `react-router-redux`.\n- Use popular Redux, React-Router authentication and authorization packages for React routing.\n\n## Code Examples\n\n- [What we want to be able to do](#todo)\n- [Making feathers-client.authentication work with Redux](#reduxifying)\n- [Working example](#workingexample)\n\n### <a name=\"todo\"></a> What we want to be able to do\n\nThis is typical code for React routing and permissions.\n\n```javascript\nimport { UserAuthWrapper } from 'redux-auth-wrapper';\n\n// Define permissions\nconst UserIsAuthenticated = UserAuthWrapper({\n  authSelector: (state) => state.auth.user, // BEING ABLE TO DO THIS IS ONE REASON TO USE THIS REPO\n  predicate: user => user && user.isVerified,\n  ...\n});\nconst UserIsAdmin = UserAuthWrapper({\n  authSelector: (state) => state.auth.user, // BEING ABLE TO DO THIS IS ONE REASON TO USE THIS REPO\n  predicate: user => user && user.isVerified && user.roles && user.roles.indexOf('admin') !== -1,\n  ...\n});\n\n// React routing\n<Provider store={store}>\n  <Router history={history}>\n    <Route path=\"/\" component={AppWrapper}>\n      <Route path=\"/user/profilechange\"\n        component={UserIsAuthenticated(UserProfileChange)} // USER MUST BE AUTHENTICATED\n      />\n      <Route path=\"/user/roleschange\"\n        component={UserIsAuthenticated(UserIsAdmin(UserRolesChange))} // AUTHENTICATED AND ADMIN\n      />\n    </Route>\n  </Router>\n</Provider>\n```\n\n`require('feathers-client').authentication` cannot be used as-is in this scenario\nor other scenarios involving Redux-based projects.\n\n`feathers-reduxify-authentication` wraps feathers-client.authentication\nso it behaves transparently as 100% compatible Redux code.\n\n### <a name=\"reduxifying\"></a> Making feathers-client.authentication work with Redux\n\nYou wrap `require('feathers-client').authentication`, insert the wrapper's reducer\ninto Redux's `combineReducers`, and use the wrapper's action creators with Redux's `dispatch`.\n\nVoila, 100% Redux compatible with the current user retained in Redux's `store`.\n\n```javascript\nimport feathers from 'feathers-client';\nimport feathersReduxifyAuthentication from 'feathers-reduxify-authentication';\n\n// Configure feathers-client\nconst app = feathers(). ... .configure(feathers.authentication({ ... });\n\n// Reduxify feathers-client.authentication\nfeathersAuthentication = reduxifyAuthentication(app,\n  { isUserAuthorized: (user) => user.isVerified } // WE INSIST USER IS 'verified' TO AUTHENTICATE\n);\n\n// Add to Redux reducer\nconst rootReducer = combineReducers({ ..., auth: feathersAuthentication.reducer, ...});\n\n// Dispatch actions as needed. Params are the same as for feathers.authentication().\ndispatch(feathersAuthentication.authenticate({ type: 'local', email, password })).then().catch();\ndispatch(feathersAuthentication.logout());\n```\n\n### <a name=\"workingexample\"></a> Working Example\n\nThis package is used in\n[feathers-starter-react-redux-login-roles](https://github.com/eddyystop/feathers-starter-react-redux-login-roles)\nwhich implements full featured local authentication with user roles, email verification,\nforgotten passwords, etc.\n\nYou can review how that project uses `feathers-reduxify-authentication`:\n- `client/feathers/index.js` configures feathers and reduxifies feathers-client.authentication.\n- `client/reducers/index.js` adds our authentication to Redux's reducers.\nOur current user will be stored at `state.auth.user`.\n- `client/index.js` sets up React routing and permissions.\n- `client/screens/Users/UserSignIn/FormContainer.js`\nboth authenticates users and logs them out.\n\n## <a name=\"motivation\"></a> Motivation\n\n- Feathers is a great real-time client-server framework.\n- Redux is a great state container for the front-end.\n- React is a great declarative UI.\n- React-Router is a complete routing library for React by React.\n- There are several packages\nwhich handle authentication and authorization for React-Router and Redux.\n\nThis repo let's everyone work together easily.\n\n## <a name=\"installation\"></a> Installation\n\nInstall [Nodejs](https://nodejs.org/en/).\n\nRun `npm install --save-dev feathers-reduxify-authentication` in your project folder.\n\nYou can then:\n\n```javascript\n// ES6\nimport feathersReduxifyAuthentication from 'feathers-reduxify-authentication';\n// ES5\nconst feathersReduxifyAuthentication = require('feathers-reduxify-authentication');\n```\n\n`/src` on GitHub contains the ES6 source.\n\n## <a name=\"apiReference\"></a> API Reference\n\nEach module is fully documented.\n\nAlso see [Working example](#workingexample) above.\n\n## <a name=\"tests\"></a> Build\n\n`npm test` to transpile the ES6 code in `/src` to ES5 in `/lib`.\n\n## <a name=\"contribution\"></a> Contributing\n\n[Contribute to this repo.](./CONTRIBUTING.md)\n\n[Guide to ideomatic contributing.](https://github.com/jonschlinkert/idiomatic-contributing)\n\n## <a name=\"changeLog\"></a> Change Log\n\n[List of notable changes.](./CHANGELOG.md)\n\n## <a name=\"license\"></a> License\n\nMIT. See LICENSE.","readmeFilename":"README.md"}