npm.io
0.11.7 • Published 5 years ago

@colyseus/social

Licence
MIT
Version
0.11.7
Deps
9
Size
9 kB
Vulns
6
Weekly
0
Stars
21


Patreon donate button Discussion forum

Authentication and Social features for Colyseus
View documentation

Features

  • Authenticate with Facebook
  • Get list of user's friends
  • Get list of user's online friends
  • Friend requests (send, accept, decline)
  • Block user

Hooks

import { hooks } from "@colyseus/social";

hooks.beforeAuthenticate((provider, $setOnInsert, $set) => {
    // assign default metadata upon registration
    $setOnInsert = {
        metadata: {
            coins: 100,
            trophies: 0
        }
    };
});

hooks.beforeUserUpdate((_id, fields) => {
    if (fields['username']) {
        if (fields['username'] === "bad word!") {
            throw new Error("can't have bad words!");
        }
    }
})

Authentication Providers

  • Anonymous
  • Facebook
  • ...more coming soonish!

Environment Variables

  • MONGO_URI: MongoDB connection URI
  • JWT_SECRET: Secure secret string for authentication.
For Facebook:
  • FACEBOOK_APP_TOKEN: Facebook App Token ("appid|appsecret")
For Push Notifications
  • WEBPUSH_SUBJECT - mailto: or URL.
  • WEBPUSH_PUBLIC_KEY - VAPID Public Key
  • WEBPUSH_PRIVATE_KEY - VAPID Private Key

You can generate VAIPD keys using npx web-push generate-vapid-keys

Integration with your Node.js Web Framework

Express
import express from "express";
import socialRoutes from "@colyseus/social/express"

const app = express();
app.use("/", socialRoutes);

app.listen(8080);

TODO's

License

MIT License.

Keywords