npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

express-digiid

v0.1.1

Published

Digi-ID express plugin

Downloads

9

Readme

Express Digi-Id

Known Bugs

This library is known not to work properly with DigiByte addresses starting with S. At present no wallets use addresses starting with S for Digi-Id. Infact other then DigiAsset based logins no wallet will ever use an address starting with S so this bug currently causes 0 issues.

Installation

npm install express-digiid

Usage

//initialize express
const api = express();

//initialize body parser
const bodyParser = require("body-parser");
api.use(bodyParser.urlencoded({ extended: false }));
api.use(bodyParser.json());

//initialize express-digiid
const expressDigiId=require('express-digiid');
const callback_url="https://mydomain.com/digiid/callback"; //leave as undefined if should check every POST command
api.use(expressDigiId.express(callback_url));

//handle login request to a specific callback url
app.post('/subdomain/:subdomain',(req,res,next)=>{
    if (req.digiid===false) {
        /*
         * if callback_url is defined this will never happen an error will be returned to the wallet automatically
         * if callback_url is undefined then all post commands are processed you need to check if this particular page
         * should have been accessed with a valid digiid or not.  if a valid Digi-Id is expected execute
         */
         return res.status(500).json({error: "Digi-Id Invalid Signature"}); 
    } else {
        /*
         * req.digiid will be in the format
         * {
         *  hash:   hex string containing the pubkeyhash of the Digi-Id address.  For databases this is ideal value to store since it is a 20 byte binary value,
         *  sig:    hex signature for the Digi-Id request.  Can be safely ignored most of the time,
         *  address:string address value.  should generally be ignored in favour of hash,
         *  uri:    string containing the uri encoded in the Digi-Id QR code.  params is usually more useful,
         *  params: object containing all the parameters that where in the uri. "x" is the most useful parameter since it is the nonce
         *  paramOrder: array of params in order they where included
         * };
         * you can do any aditional checks you like here.  If successful you should let the wallet know by executing
         */
        return res.status(200).json({
            address:    req.digiid.address,
            nonce:      req.digiid.params.x
        });
    }
    
});