|
@@ -1,10 +1,11 @@
|
|
|
import { Config, Inject, Provide } from '@midwayjs/core';
|
|
|
import { JwtService } from '@midwayjs/jwt';
|
|
|
import { Context } from '@midwayjs/koa';
|
|
|
-import { get } from 'lodash';
|
|
|
+import { get, toLower } from 'lodash';
|
|
|
import { ServiceError, ErrorCode } from '../error/service.error';
|
|
|
import * as Crypto from 'crypto-js';
|
|
|
import { RedisService } from '@midwayjs/redis';
|
|
|
+import { ProxyService } from './proxy.service';
|
|
|
|
|
|
@Provide()
|
|
|
export class SingleSignOnService {
|
|
@@ -16,6 +17,12 @@ export class SingleSignOnService {
|
|
|
private jwtSecret;
|
|
|
@Config('jwt.expiresIn')
|
|
|
private jwtExpiresIn;
|
|
|
+ /**核心服务前缀 */
|
|
|
+ @Config('projectPrefix.core')
|
|
|
+ corePrefix: string;
|
|
|
+ @Inject()
|
|
|
+ proxyService: ProxyService;
|
|
|
+
|
|
|
@Inject()
|
|
|
private jwtService: JwtService;
|
|
|
@Inject()
|
|
@@ -58,15 +65,25 @@ export class SingleSignOnService {
|
|
|
inWhiteList(): boolean {
|
|
|
const whiteList = [
|
|
|
{
|
|
|
- uri: '/login',
|
|
|
+ uri: `${this.corePrefix}/login`,
|
|
|
+ method: 'post',
|
|
|
desc: '登陆接口',
|
|
|
},
|
|
|
{
|
|
|
- uri: '/dict',
|
|
|
+ uri: `${this.corePrefix}/dict`,
|
|
|
+ method: 'get',
|
|
|
desc: '字典接口',
|
|
|
},
|
|
|
+ // {
|
|
|
+ // uri: `${this.corePrefix}/token/tokenView`,
|
|
|
+ // method: 'get',
|
|
|
+ // desc: 'token认证',
|
|
|
+ // },
|
|
|
];
|
|
|
-
|
|
|
- return true;
|
|
|
+ const rb = this.proxyService.getRequstBase();
|
|
|
+ const r = whiteList.find(
|
|
|
+ f => f.uri === rb.path && toLower(f.method) === toLower(rb.method)
|
|
|
+ );
|
|
|
+ return r ? true : false;
|
|
|
}
|
|
|
}
|