10.0.0 • Published 1 year ago

alp-node-auth v10.0.0

Weekly downloads
76
License
ISC
Repository
github
Last release
1 year 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

1 year ago

9.3.0

1 year ago

9.2.0

1 year ago

9.1.0

1 year ago

9.0.1

2 years ago

9.0.0

2 years ago

8.0.0

2 years ago

7.1.2

2 years ago

7.1.1

2 years ago

7.1.0

2 years ago

7.2.2

2 years ago

7.2.1

2 years ago

7.2.0

2 years ago

6.1.0

3 years ago

6.1.2

3 years ago

6.1.1

3 years ago

6.0.7

3 years ago

6.0.8

3 years ago

7.0.0

3 years ago

6.0.6

3 years ago

6.0.1

3 years ago

6.0.0

3 years ago

6.0.3

3 years ago

6.0.2

3 years ago

6.0.5

3 years ago

6.0.4

3 years ago

5.3.1

4 years ago

5.3.0

4 years ago

5.1.2

4 years ago

5.2.1

4 years ago

5.2.0

4 years ago

5.1.1

4 years ago

5.1.0

4 years ago

5.0.7

4 years ago

5.0.6

4 years ago

5.0.5

4 years ago

5.0.4

4 years ago

5.0.3

4 years ago

5.0.2

4 years ago

5.0.1

4 years ago

5.0.0

4 years ago

4.0.1

4 years ago

4.0.0

5 years ago

3.3.0

5 years ago

3.2.0

5 years ago

3.1.1

5 years ago

3.1.0

5 years ago

3.0.1

5 years ago

3.0.0

6 years ago

2.10.2

6 years ago

2.10.1

6 years ago

2.10.0

6 years ago

2.9.2

6 years ago

2.9.1

6 years ago

2.9.0

6 years ago

2.8.1

6 years ago

2.8.0

6 years ago

2.7.0

6 years ago

2.6.1

6 years ago

2.6.0

6 years ago

2.5.0

6 years ago

2.4.0

6 years ago

2.3.0

6 years ago

2.2.3

6 years ago

2.2.2

6 years ago

2.2.1

6 years ago

2.2.0

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.0-beta.1169

6 years ago

1.0.0-beta.1168

6 years ago

1.0.0-beta.1167

6 years ago

1.0.0-beta.1166

6 years ago

1.0.0-beta.1164

6 years ago

1.0.0-beta.1162

6 years ago

1.0.0-alpha.1162

6 years ago

1.0.0-alpha.1160

6 years ago

1.0.0-alpha.1159

6 years ago

1.0.0-alpha.1156

6 years ago

1.0.0-alpha.1155

6 years ago

1.0.0-alpha.1154

6 years ago

1.0.0-alpha.1153

6 years ago

1.0.0-alpha.1152

6 years ago

1.0.0-alpha.1151

6 years ago

1.0.0-alpha.1150

6 years ago

1.0.0-alpha.1149

6 years ago

1.0.0-beta.1143

6 years ago

1.0.0-beta.1142

6 years ago

1.0.0-beta.1141

6 years ago

1.0.0-beta.1139

6 years ago

1.0.0-beta.1138

6 years ago

1.0.0-beta.1137

6 years ago

1.0.0-beta.1136

6 years ago

1.0.0-beta.1135

6 years ago

1.0.0-beta.1134

6 years ago

1.0.0-beta.1133

6 years ago

1.0.0-alpha.1132

6 years ago

1.0.0-alpha.1135

6 years ago

1.0.0-alpha.1134

6 years ago

1.0.0-alpha.1133

6 years ago