isa-auth-core
Version:
99 lines (98 loc) • 3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _jwt = require("../auths/jwt");
const _isautil = require("isa-util");
const _store = require("../store");
const _baseAuthService = /*#__PURE__*/ _interop_require_default(require("./baseAuthService"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
class JwtService extends _baseAuthService.default {
initStore(prevState) {
super.initStore(prevState);
}
// jwt secret 설정
configureJwt(secret) {
(0, _jwt.configureJwtManager)(secret);
}
getAuthState() {
return super.getAuthState();
}
setAuthState(value) {
super.setAuthState(value);
}
getAuthInfo() {
return super.getAuthInfo();
}
setAuthInfo(value) {
super.setAuthInfo(value);
}
watchAuthState(callback) {
return super.watchAuthState(callback);
}
clearAuthState() {
super.clearAuthState();
(0, _store.removeAccessToken)();
}
// access token 관련 메소드
getAccessToken() {
return (0, _store.getAccessToken)();
}
setAccessToken(value) {
(0, _store.setAccessToken)(value);
}
isValidAccessToken() {
const token = (0, _store.getAccessToken)();
var _isValidToken;
return (_isValidToken = (0, _jwt.isValidToken)(token)) !== null && _isValidToken !== void 0 ? _isValidToken : false;
}
isExpiredAccessToken() {
const token = (0, _store.getAccessToken)();
var _isExpiredToken;
return (_isExpiredToken = (0, _jwt.isExpiredToken)(token)) !== null && _isExpiredToken !== void 0 ? _isExpiredToken : false;
}
getAccessTokenPayload() {
const token = (0, _store.getAccessToken)();
return (0, _jwt.getTokenPayload)(token);
}
setAccessTokenFromHeader(header) {
const token = (0, _jwt.getTokenFromHeader)(header);
if (!token) return;
(0, _store.setAccessToken)(token);
}
async refreshToken(refreshTokenFn) {
try {
const newToken = await refreshTokenFn();
if (!(0, _jwt.isValidToken)(newToken)) throw new Error('Invalid token');
const payload = (0, _jwt.getTokenPayload)(newToken);
this.setAuthInfo((0, _isautil.isNull)(this.getAuthInfo()) ? {
payload
} : {
...this.getAuthInfo(),
payload
});
(0, _store.setAccessToken)(newToken);
return newToken;
} catch (error) {
this.clearAuthState();
return null;
}
}
constructor(secret){
super();
this.initStore(false);
this.configureJwt(secret);
}
}
const _default = JwtService;
//# sourceMappingURL=jwtService.js.map