Adding Multiple OAuth2 Strategies Not working
- 主要语言
- TypeScript
- 星标
- 8.1k
- 派生
- 1.5k
- PR 合并指标
- 30 天内没有已合并 PR
描述
I implemented more than one strategy like this:
```
strategies: [
NbPasswordAuthStrategy.setup({
name: 'xxx',
baseEndpoint: '/api/',
login: {
endpoint: 'login/xxx',
method: 'post'
},
token: {
class: NbAuthJWTToken,
key: 'data.token'
},
errors: {
key: 'error.message'
},
}),
NbPasswordAuthStrategy.setup({
name: 'yyy',
baseEndpoint: '/api/',
login: {
endpoint: 'login',
method: 'post'
},
register: {
endpoint: 'register',
method: 'post'
},
token: {
class: NbAuthJWTToken,
key: 'data.token'
},
errors: {
key: 'error.message'
}
}),
```
But when trying to use xxx strategy, it always returns "There is no Auth Strategy registered under 'xxx' name" error:
```
this.authService.authenticate('xxx', params)
.subscribe((result: NbAuthResult) => {
```
Was trying to debug by adding log build result of auth.service.js:
```
function (strategyName) {
console.log('Strategies: ', this.strategies);
var found = this.strategies.find(function (strategy) { return strategy.getName() === strategyName; });
if (!found) {
throw new TypeError("There is no Auth Strategy registered under '" + strategyName + "' name");
}
return found;
};
```
But in the result the strategies does not have 'name' field:
```
(2) [NbPasswordAuthStrategy, NbPasswordAuthStrategy]
0
:
NbPasswordAuthStrategy
defaultOptions
:
NbPasswordAuthStrategyOptions {baseEndpoint: "/api/auth/", login: {…}, register: {…}, requestPass: {…}, resetPass: {…}, …}
http
:
HttpClient {handler: HttpInterceptingHandler}
options
:
{baseEndpoint: "/api/", login: {…}, register: {…}, requestPass: {…}, resetPass: {…}, …}
route
:
ActivatedRoute {url: BehaviorSubject, params: BehaviorSubject, queryParams: BehaviorSubject, fragment: BehaviorSubject, data: BehaviorSubject, …}
__proto__
:
NbAuthStrategy
1
:
NbPasswordAuthStrategy```
贡献指南
评估
这个 Issue 还没有评估数据。