10.0.0 • Published 4 months ago

alp-node-auth v10.0.0

Weekly downloads
76
License
ISC
Repository
github
Last release
4 months ago

Install

npm install --save alp-node-auth

What it does

  • Provides route and controller to login user
  • Provides extandable services and managers
  • Provides authentication middleware: context.state.connected and context.state.user

How to use

config/local.yml

server:
    google:
        clientId: xxxx
        clientSecret: xxxx

models/user/usersManager.server.js

import MongoStore from '../../db/mongo';
import { UsersManager } from 'alp-node-auth';

export default new UsersManager(new MongoStore('users'));

index.server.js

import Alp from 'alp-node';
import 'alp-node/fetch';
import authInit from 'alp-node-auth';
import googleStrategy from 'alp-node-auth/strategies/google';
import * as loginModuleDescriptor from './modules/auth/login';
import usersManager from './models/user/usersManager.server';

const app = new Alp(...);

// config / init
const authMiddleware = authInit({
   controllers,
   usersManager,
   strategies: { google: googleStrategy(config) },
   loginModuleDescriptor,
})(app);

// middlewares
app.use(authMiddleware);

routerBuilder.js

import { routes as authRoutes } from 'alp-node-auth';

export default function buildRouter(builder) {
    builder
        .add('home', '/', 'home.index')
        .add(...authRoutes.login)
        .add(...authRoutes.logout)
        .addDefaultRoutes();
}

modules/auth/login/index.js

export const identifier = 'login';
export View from './LoginView';

modules/auth/login/LoginView.js

import { ReactNode } from 'react';
import T from 'react-alp-translate';
import { Helmet } from 'alp-react';
import { LoginButtons } from 'react-alp-login';
import Header from '../components/HeaderComponent';

export default (): ReactNode => (
  <div className="login-view">
    <T id="title">{title => <Helmet title="Login" titleTemplate={`${title} - %s`} />}</T>
    <Header />
    <LoginButtons />
  </div>
);

modules/common/components/HeaderUserComponent.js

import { ReactNode } from 'react';
import Link from 'react-alp-link';
import User from 'react-alp-user';
import T from 'react-alp-translate';

  <User>
    {user => (
      user ? (
        <span className="dropdown">
          {user.displayName}
          <ul className="list links">
            <li>
              <T id="header.logout">{t =>
                <Link to="logout" target="_self">{t}</Link>
              }</T>
            </li>
          </ul>
        </span>
      ) : (
        <div>
          <T id="header.login">{t => (
            <Link to="login" params={{ strategy: 'google' }} target="_self">{t}</Link>
          )}</T>
        </div>
      )
    )}
  </User>
);
10.0.0

4 months ago

9.3.0

4 months ago

9.2.0

4 months ago

9.1.0

5 months ago

9.0.1

10 months ago

9.0.0

10 months ago

8.0.0

1 year ago

7.1.2

1 year ago

7.1.1

1 year ago

7.1.0

1 year ago

7.2.2

1 year ago

7.2.1

1 year ago

7.2.0

1 year ago

6.1.0

2 years ago

6.1.2

2 years ago

6.1.1

2 years ago

6.0.7

2 years ago

6.0.8

2 years ago

7.0.0

1 year ago

6.0.6

2 years ago

6.0.1

2 years ago

6.0.0

2 years ago

6.0.3

2 years ago

6.0.2

2 years ago

6.0.5

2 years ago

6.0.4

2 years ago

5.3.1

3 years ago

5.3.0

3 years ago

5.1.2

3 years ago

5.2.1

3 years ago

5.2.0

3 years ago

5.1.1

3 years ago

5.1.0

3 years ago

5.0.7

3 years ago

5.0.6

3 years ago

5.0.5

3 years ago

5.0.4

3 years ago

5.0.3

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.0.1

3 years ago

4.0.0

4 years ago

3.3.0

4 years ago

3.2.0

4 years ago

3.1.1

4 years ago

3.1.0

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.10.2

5 years ago

2.10.1

5 years ago

2.10.0

5 years ago

2.9.2

5 years ago

2.9.1

5 years ago

2.9.0

5 years ago

2.8.1

5 years ago

2.8.0

5 years ago

2.7.0

5 years ago

2.6.1

5 years ago

2.6.0

5 years ago

2.5.0

5 years ago

2.4.0

5 years ago

2.3.0

5 years ago

2.2.3

5 years ago

2.2.2

5 years ago

2.2.1

5 years ago

2.2.0

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.0-beta.1169

5 years ago

1.0.0-beta.1168

5 years ago

1.0.0-beta.1167

5 years ago

1.0.0-beta.1166

5 years ago

1.0.0-beta.1164

5 years ago

1.0.0-beta.1162

5 years ago

1.0.0-alpha.1162

5 years ago

1.0.0-alpha.1160

5 years ago

1.0.0-alpha.1159

5 years ago

1.0.0-alpha.1156

5 years ago

1.0.0-alpha.1155

5 years ago

1.0.0-alpha.1154

5 years ago

1.0.0-alpha.1153

5 years ago

1.0.0-alpha.1152

5 years ago

1.0.0-alpha.1151

5 years ago

1.0.0-alpha.1150

5 years ago

1.0.0-alpha.1149

5 years ago

1.0.0-beta.1143

5 years ago

1.0.0-beta.1142

5 years ago

1.0.0-beta.1141

5 years ago

1.0.0-beta.1139

5 years ago

1.0.0-beta.1138

5 years ago

1.0.0-beta.1137

5 years ago

1.0.0-beta.1136

5 years ago

1.0.0-beta.1135

5 years ago

1.0.0-beta.1134

5 years ago

1.0.0-beta.1133

5 years ago

1.0.0-alpha.1132

5 years ago

1.0.0-alpha.1135

5 years ago

1.0.0-alpha.1134

5 years ago

1.0.0-alpha.1133

5 years ago