Skip to content

layeredapps/oauth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Documentation for OAuth module

Shortcuts

Index

Introduction

Dashboard bundles everything a web app needs, all the "boilerplate" like signing in and changing passwords, into a parallel server so you can write a much smaller web app.

OAuth provide authentication options for websites using the Oauth standard, so users can "sign in with" GitHub and other compatible services rather than by username/password.

When the user authenticates with an OAuth service they can optionally be required to complete a profile with contact or other information.

Sessions created with OAuth do not expire until the user signs out or the session is expired in the user / administrator options.

Accounts created with OAuth cannot change username, change password, or use reset codes. If they navigate to these routes the requests are intercepted by a server handler and redirected to a conversion form that can convert an OAuth account to username/password.

Import this module

Install the module with NPM:

$ npm install @layeredapps/oauth

Edit your package.json to activate the module:

"dashboard": {
  "modules": [
    "@layeredapps/oauth"
  ]
}

Edit your package.json to include the scripts for provider buttons which injects a <div id="oauth-buttons" /> into the signin and register pages:

"dashboard": {
  "content": [
    "@layeredapps/oauth/src/content/register-buttons.js",
    "@layeredapps/oauth/src/content/signin-buttons.js"
  ]
}

Add provider modules, eg:

$ npm install @layeredapps/oauth-github

And configure the provider modules:

"dashboard": {
  "modules": [
    "@layeredapps/oauth",
    "@layeredapps/oauth-github"
  ]
  "server": [
    "@layeredapps/oauth/src/server/redirect-unused.js",
  ],
  "content": [
    "@layeredapps/oauth/src/content/register-buttons.js",
    "@layeredapps/oauth/src/content/signin-buttons.js",
    "@layeredapps/oauth-github/src/content/error-templates.js",
    "@layeredapps/oauth-github/src/content/register-button.js",
    "@layeredapps/oauth-github/src/content/signin-button.js"
  ]
}

Optionally require the user complete a profile with Dashboard's configuration setting:

REQUIRE_PROFILE=true
USER_PROFILE_FIELDS=....

Provided server, content and proxy handlers

This module comes with some convenience scripts you can add to your package.json:

Type Script path Description
content @layeredapps/oauth/src/content/register-buttons.js Adds a <div id="oauth-buttons"></div> container to the registration page for placing provider buttons.
content @layeredapps/oauth/src/content/signin-buttons.js Adds a <div id="oauth-buttons"></div> container to the signin page for placing provider buttons.
server @layeredapps/oauth/src/server/redirect-unused.js Redirects change-username, change-password and create-reset-code to a page where users may convert their Oauth-credentialed account to a username/password account.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy