Giter Site home page Giter Site logo

hendrysadrak / firestore-store Goto Github PK

View Code? Open in Web Editor NEW
47.0 5.0 3.0 696 KB

express-session store for Firebase Cloud Firestore

Home Page: https://npm.im/firestore-store

License: MIT License

JavaScript 100.00%
express nodejs firestore express-session expressjs firebase firestore-store connect

firestore-store's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar hendrysadrak avatar kariem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

firestore-store's Issues

Storing the session as an object

Hi,

I've been using the store for a while and I recenty noticed that the sessions are stored as a single string field instead of a structured object.

I'm aware I can implement my own doc parser which would do effectively nothing.
Before I go that way, I would like to know why you chose to store the session as a single string field containing the string of the json serialization of the session object instead of storing a more structured session object.

Thanks

Using default session name for cookie using express session for firebase firestore

I am developing an application and hosting on firebase. I used express-session for firebase firestore. The documentation recommends default cookie name as __session as mentioned here https://www.npmjs.com/package/firestore-store#usage-in-cloud-functions-or-cloud-run. But, Express module recommends not to use default name for security reasons as here https://expressjs.com/en/advanced/best-practice-security.html#use-cookies-securely . any thoughts or suggestions?

Changing saved data to maps

Hi, I mean no harm but I changed the package a little bit and got this code going on the doc parser. I was able to save the session info as a map instead of a string. Don't really know what problems this might introduce but maybe you can add it to the project.

module.exports = {
	read (doc) {
		return doc;
	},

	save (doc) {
		return JSON.parse(JSON.stringify(doc));
	}
};

Here is a screenshot of what the data looks like on firestore. Your proyect save me from having to change the whole db BTW.

Captura de pantalla 2020-10-09 155656

Custom sessions fields are not saved

I'm using express-session 1.16.2, with firestore-2.0, firebase-admin 8.2.0 and passport 0.4.0.
I initialize it like this:

app.use(session({
    secret: 'very secret',
    resave: true,
    rolling: true,
    saveUninitialized: true,
    store: new FirestoreStore({ database: require(path.join(__dirname, 'modules', 'firestore'))})
}))
app.use(passport.initialize());
app.use(passport.session());

This gives me a persisted session object like this, so the logged in user is kept when node is restarted. Below is a typical output from console.log('current session:', req.session).

current session: Session {
cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true },
passport: { user: '... a firestore id ...' } }

But then I want to save some more data, and have a post() handler where I set req.session.my_field = value;

However, in the firestore database, this field does not appear. Therefore, it can't be restored for the new request. With the default MemoryStore this works fine, but then the logged in user is of course cleared on restarts.

Is there something more I need to do to get the other fields in req.session to also be persisted?

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didn’t receive a CI status on the greenkeeper/initial branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper App’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.