mirror of
https://github.com/feathersjs/feathers.git
synced 2025-12-08 19:46:22 +00:00
56 lines
2.6 KiB
Markdown
56 lines
2.6 KiB
Markdown
---
|
|
outline: deep
|
|
---
|
|
|
|
# Authentication Strategies
|
|
|
|
An authentication strategy is any object or class that implements at least an [authenticate(data, params)]() method. They can be registered with the AuthenticationService to authenticate service calls and other requests. The following strategies already come with Feathers:
|
|
|
|
- [JWTStrategy](./jwt.md) in `@feathersjs/authentication`
|
|
- [LocalStrategy](./local.md) in `@feathersjs/authentication-local`
|
|
- [OAuthStrategy](./oauth.md) in `@feathersjs/authentication-oauth`
|
|
|
|
More details on how to customize existing strategies can be found in their API documentation. This section describes the common methods for all authentication strategies and how a custom authentication strategy can be implemented.
|
|
|
|
## setName(name)
|
|
|
|
Will be called with the `name` under which the strategy has been [registered on the authentication service](./service.md#register-name-strategy). Does not have to be implemented.
|
|
|
|
## setApplication(app)
|
|
|
|
Will be called with the [Feathers application](../application.md) instance. Does not have to be implemented.
|
|
|
|
## setAuthentication(service)
|
|
|
|
Will be called with the [Authentication service](./service.md) this strategy has been registered on. Does not have to be implemented.
|
|
|
|
## verifyConfiguration()
|
|
|
|
Synchronously verify the configuration for this strategy and throw an error if e.g. required fields are not set. Does not have to be implemented.
|
|
|
|
## authenticate(authentication, params)
|
|
|
|
Authenticate `authentication` data with additional `params`. `authenticate` should throw a `NotAuthenticated` if it failed or return an authentication result object.
|
|
|
|
## parse(req, res)
|
|
|
|
Parse a given plain Node HTTP request and response and return `null` or the authentication information it provides. Does not have to be implemented.
|
|
|
|
This is called by the authentication service. See [AuthService.parse](https://dove.feathersjs.com/api/authentication/service.html#parse-req-res-strategies)
|
|
|
|
## AuthenticationBaseStrategy
|
|
|
|
The `AuthenticationBaseStrategy` class provides a base class that already implements some of the strategy methods below with some common functionality:
|
|
|
|
- [setName](#setname-name) sets `this.name`
|
|
- [setApplication](#setapplication-app) sets `this.app`
|
|
- [setAuthentication](#setauthentication-service) sets `this.authentication`
|
|
- `configuration` getter returns `this.authentication.configuration[this.name]`
|
|
- `entityService` getter returns the entity (usually `/users`) service from `this.app`
|
|
|
|
## Examples
|
|
|
|
Examples for authentication strategies can be found in the [Cookbook](../../cookbook/):
|
|
|
|
- [Anonymous strategy](../../cookbook/authentication/anonymous.md)
|