1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-11-17 07:45:52 +01:00
verdaccio/website/translated_docs/zh-Hans/dev-plugins.md

66 lines
1.4 KiB
Markdown
Raw Normal View History

New Crowdin translations (#456) * New translations ansible.md (Chinese Simplified) * New translations packages.md (Chinese Simplified) * New translations windows.md (Chinese Simplified) * New translations web.md (Chinese Simplified) * New translations use-cases.md (Chinese Simplified) * New translations uplinks.md (Chinese Simplified) * New translations test.md (Chinese Simplified) * New translations ssl.md (Chinese Simplified) * New translations server.md (Chinese Simplified) * New translations reverse-proxy.md (Chinese Simplified) * New translations repositories.md (Chinese Simplified) * New translations protect-your-dependencies.md (Chinese Simplified) * New translations plugins.md (Chinese Simplified) * New translations notifications.md (Chinese Simplified) * New translations auth.md (Chinese Simplified) * New translations logger.md (Chinese Simplified) * New translations kubernetes.md (Chinese Simplified) * New translations install.md (Chinese Simplified) * New translations index.md (Chinese Simplified) * New translations iis-server.md (Chinese Simplified) * New translations home.md (Chinese Simplified) * New translations docker.md (Chinese Simplified) * New translations dev-plugins.md (Chinese Simplified) * New translations contributing.md (Chinese Simplified) * New translations config.md (Chinese Simplified) * New translations cli.md (Chinese Simplified) * New translations build.md (Chinese Simplified) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Simplified) * New translations install.md (Chinese Simplified) * New translations install.md (Chinese Simplified) * New translations home.md (Chinese Simplified) * New translations cli.md (Chinese Simplified) * New translations config.md (Chinese Simplified) * New translations config.md (Chinese Simplified) * New translations config.md (Chinese Simplified) * New translations auth.md (Chinese Simplified) * New translations config.md (Chinese Simplified) * New translations auth.md (Chinese Simplified) * New translations auth.md (Chinese Simplified) * New translations config.md (Chinese Simplified) * New translations en.json (Spanish) * New translations en.json (Spanish) * New translations en.json (Spanish) * New translations en.json (Spanish) * New translations en.json (Spanish) * New translations config.md (Chinese Simplified) * New translations config.md (Spanish) * New translations config.md (Urdu (Pakistan)) * New translations config.md (Chinese Traditional, Hong Kong) * New translations config.md (Portuguese, Brazilian) * New translations config.md (Chinese Traditional)
2018-01-08 20:45:03 +01:00
---
id: dev-plugins
title: Developing Plugins
---
There are many ways to extend `verdaccio`, currently we only support `authentication plugins`
## Authentication Plugins
This section will describe how it looks like a Verdaccio plugin in a ES5 way. Basically we have to return an object with a single method called `authenticate` that will recieve 3 arguments (`user, password, callback`). Once the authentication has been executed there is 2 options to give a response to `verdaccio`.
##### OnError
Either something bad happened or auth was unsuccessful.
callback(null, false)
##### OnSuccess
The auth was successful.
`groups` is an array of strings where the user is part of.
callback(null, groups);
### Example
```javascript
function Auth(config, stuff) {
var self = Object.create(Auth.prototype);
self._users = {};
// config for this module
self._config = config;
// verdaccio logger
self._logger = stuff.logger;
// pass verdaccio logger to ldapauth
self._config.client_options.log = stuff.logger;
return self;
}
Auth.prototype.authenticate = function (user, password, callback) {
var LdapClient = new LdapAuth(self._config.client_options);
....
LdapClient.authenticate(user, password, function (err, ldapUser) {
...
var groups;
...
callback(null, groups);
});
};
module.exports = Auth;
```
## Storage Plugins
// in progress
## Middleware Integration
// in progress