solid-auth-cli
**a node/command-line Solid client with persistent login** <br> <br> [![NPM](https://nodei.co/npm/solid-auth-cli.png)](https://nodei.co/npm/solid-auth-cli/)
Last updated 3 months ago by jeff-zucker .
MIT · Original npm · Tarball · package.json
$ cnpm install solid-auth-cli 
SYNC missed versions from official npm registry.

solid-auth-cli

a node/command-line Solid client with persistent login

NPM

This library supports login and persistent connection to Solid from command-line and node apps. It (and apps using it) can make authorized fetches either directly using the fetch and REST APIs, or using rdflib's fetcher.

Use with rdflib.js

You must be using Version 0.19.1 or later of rdflib.js to use it in conjunction with solid-auth-cli. And you must initialize your fetcher as shown below.

const $rdf = require('rdflib');
const auth = require('solid-auth-cli');
const store = $rdf.graph();
const fetcher = $rdf.fetcher( store, {fetch:auth.fetch} );
auth.login().then( session => {
    fetcher.load( ... ).then( response => {
        // ... any rdflib methods
    }, console.log() )
}, console.log() )

Wrting scripts that work in both the browser and node

Solid-auth-cli is built on top of solid-cli, providing persistance and the same API as solid-auth-client. Since it mimics all of solid-auth-client's methods, scripts can work in both browserless and browser contexts by switching which library is called like this:

if(typeof window === "undefined"){ solid = { auth:require('solid-auth-cli') } } solid.auth.login()... // this will now use solid-auth-client in the browser // and solid-auth-cli in node

login()

login( path-to-credentials-json-file )

login({ idp:"https://idp.example.com", username:"you", password:"hmm" })

The login method needs an Identity Provider, username, and password. Those may be passed in as an object or read from a specified JSON file. If called with no arguments, login() will look for a configuration file in ~/.solid-auth-cli-config.json and, if it does not find it will look for the environment SOLID_IDP, SOLID_USERNAME, and SOLID_PASSWORD.

An example

const solid = { auth:require('solid-auth-cli') }
const resource = "https://me.example.com/private/hidden.ttl"
const expected = "only the owner"                                 
const idp = "https://example.com"

console.log("logging in ...")
login().then( session => {
    console.log(`logged in as <${session.webId}>`)
    solid.auth.fetch(resource).then( response => {
        if (!response.ok) console.log(response.status+" "+response.statusText)
        response.text().then( content => {
            if( content.match(new RegExp(expected)) ) console.log("ok")
            else console.log("Got something , but not the right thing.")
        },e => console.log("Error parsing : "+e))
    },e => console.log("Error fetching : "+e))
},e => console.log("Error logging in : "+e))

async function login() {
    var session = await solid.auth.currentSession()
    if (!session) session = await solid.auth.login()
    return session;
}

© Jeff Zucker, 2019, may be freely distributed using an MIT license

Current Tags

  • 1.0.10                                ...           latest (3 months ago)

32 Versions

  • 1.0.10                                ...           3 months ago
  • 1.0.9                                ...           3 months ago
  • 1.0.8                                ...           7 months ago
  • 1.0.7                                ...           8 months ago
  • 1.0.6                                ...           8 months ago
  • 0.1.14                                ...           8 months ago
  • 0.2.7                                ...           8 months ago
  • 1.0.5                                ...           8 months ago
  • 1.0.4                                ...           8 months ago
  • 1.0.3                                ...           8 months ago
  • 1.0.2                                ...           8 months ago
  • 1.0.1                                ...           8 months ago
  • 1.0.0                                ...           8 months ago
  • 0.2.6                                ...           9 months ago
  • 0.2.5                                ...           9 months ago
  • 0.2.4                                ...           9 months ago
  • 0.2.3                                ...           10 months ago
  • 0.2.2                                ...           10 months ago
  • 0.2.1                                ...           10 months ago
  • 0.2.0                                ...           10 months ago
  • 0.1.13                                ...           a year ago
  • 0.1.12                                ...           a year ago
  • 0.1.11                                ...           a year ago
  • 0.1.9                                ...           a year ago
  • 0.1.8                                ...           a year ago
  • 0.1.7                                ...           a year ago
  • 0.1.6                                ...           a year ago
  • 0.1.5                                ...           a year ago
  • 0.1.4                                ...           a year ago
  • 0.1.3                                ...           a year ago
  • 0.1.2                                ...           a year ago
  • 0.1.1                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 54
Last Day 0
Last Week 46
Last Month 76
Dependencies (6)
Dev Dependencies (1)

Copyright 2014 - 2016 © taobao.org |