UNPKG

@bixi/auth

Version:
133 lines 10.7 kB
/** * @fileoverview added by tsickle * Generated from: src/token/token.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { inject, Inject } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { share } from 'rxjs/operators'; import { mergeConfig } from '../auth.config'; import { BixiConfigService } from '../auth.config.service'; import { BIXI_STORE_TOKEN } from '../store/interface'; /** * 维护Token信息服务,[在线文档](https://bixi.datagrand.com/auth) */ export class TokenService { /** * @param {?} configSrv * @param {?} store */ constructor(configSrv, store) { this.store = store; this.change$ = new BehaviorSubject(null); this._referrer = {}; this._options = mergeConfig(configSrv); } /** * 授权失败后跳转路由路径(支持外部链接地址) * @return {?} */ get login_url() { return this._options.login_url; } /** * 当前请求页面的来源页面的地址 * @return {?} */ get referrer() { return this._referrer; } /** * @return {?} */ get options() { return this._options; } /** * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新 * @param {?} data * @return {?} */ set(data) { this.change$.next(data); // tslint:disable-next-line:no-non-null-assertion return this.store.set((/** @type {?} */ (this._options.store_key)), data); } /** * @template T * @param {?=} type * @return {?} */ get(type) { // tslint:disable-next-line:no-non-null-assertion /** @type {?} */ const data = this.store.get((/** @type {?} */ (this._options.store_key))); return type ? ((/** @type {?} */ (Object.assign(new type(), data)))) : ((/** @type {?} */ (data))); } /** * 清除 Token 信息,当用户退出登录时调用。 * ``` * // 清除所有 Token 信息 * tokenService.clear(); * // 只清除 token 字段 * tokenService.clear({ onlyToken: true }); * ``` * @param {?=} options * @return {?} */ clear(options = { onlyToken: false }) { /** @type {?} */ let data = null; if (options.onlyToken === true) { data = (/** @type {?} */ (this.get())); data.token = ``; this.set(data); } else { // tslint:disable-next-line:no-non-null-assertion this.store.remove((/** @type {?} */ (this._options.store_key))); } this.change$.next(data); } /** * 订阅 Token 对象变更通知 * @return {?} */ change() { return this.change$.pipe(share()); } } /** @nocollapse */ TokenService.ctorParameters = () => [ { type: BixiConfigService }, { type: undefined, decorators: [{ type: Inject, args: [BIXI_STORE_TOKEN,] }] } ]; if (false) { /** * @type {?} * @private */ TokenService.prototype.change$; /** * @type {?} * @private */ TokenService.prototype._referrer; /** * @type {?} * @private */ TokenService.prototype._options; /** * @type {?} * @private */ TokenService.prototype.store; } /** * @return {?} */ export function BIXI_SERVICE_TOKEN_FACTORY() { return new TokenService(inject(BixiConfigService), inject(BIXI_STORE_TOKEN)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvc3RldmVuemhvbmcvQ29kZS93b3JrQ29kZS9iaXhpX2FuZ3VsYXIvcGFja2FnZXMvYXV0aC8iLCJzb3VyY2VzIjpbInNyYy90b2tlbi90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBVSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTTlELE1BQU0sT0FBTyxZQUFZOzs7OztJQUt2QixZQUFZLFNBQTRCLEVBQW9DLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBSmpGLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBcUIsSUFBSSxDQUFDLENBQUM7UUFDeEQsY0FBUyxHQUFpQixFQUFFLENBQUM7UUFJbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7Ozs7SUFLRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2pDLENBQUM7Ozs7O0lBS0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Ozs7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7Ozs7O0lBS0QsR0FBRyxDQUFDLElBQWlCO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLGlEQUFpRDtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7Ozs7O0lBZUQsR0FBRyxDQUF3QixJQUFrQjs7O2NBRXJDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDOzs7Ozs7Ozs7Ozs7SUFXRCxLQUFLLENBQUMsVUFBa0MsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFOztZQUN0RCxJQUFJLEdBQXVCLElBQUk7UUFDbkMsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtZQUM5QixJQUFJLEdBQUcsbUJBQUEsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFlLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQjthQUFNO1lBQ0wsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBS0QsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7O1lBMUZNLGlCQUFpQjs0Q0FhbUIsTUFBTSxTQUFDLGdCQUFnQjs7Ozs7OztJQUpsRSwrQkFBZ0U7Ozs7O0lBQ2hFLGlDQUFxQzs7Ozs7SUFDckMsZ0NBQWlDOzs7OztJQUVTLDZCQUErQzs7Ozs7QUFnRjNGLE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQml4aUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9hdXRoLmNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEJpeGlBdXRoQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnLnR5cGUnO1xuaW1wb3J0IHsgQklYSV9TVE9SRV9UT0tFTiwgSVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUvaW50ZXJmYWNlJztcbmltcG9ydCB7IEF1dGhSZWZlcnJlciwgSVRva2VuTW9kZWwsIElUb2tlblNlcnZpY2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbi8qKlxuICog57u05oqkVG9rZW7kv6Hmga/mnI3liqHvvIxb5Zyo57q/5paH5qGjXShodHRwczovL2JpeGkuZGF0YWdyYW5kLmNvbS9hdXRoKVxuICovXG5leHBvcnQgY2xhc3MgVG9rZW5TZXJ2aWNlIGltcGxlbWVudHMgSVRva2VuU2VydmljZSB7XG4gIHByaXZhdGUgY2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVRva2VuTW9kZWwgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBfcmVmZXJyZXI6IEF1dGhSZWZlcnJlciA9IHt9O1xuICBwcml2YXRlIF9vcHRpb25zOiBCaXhpQXV0aENvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihjb25maWdTcnY6IEJpeGlDb25maWdTZXJ2aWNlLCBASW5qZWN0KEJJWElfU1RPUkVfVE9LRU4pIHByaXZhdGUgc3RvcmU6IElTdG9yZSkge1xuICAgIHRoaXMuX29wdGlvbnMgPSBtZXJnZUNvbmZpZyhjb25maWdTcnYpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaOiOadg+Wksei0peWQjui3s+i9rOi3r+eUsei3r+W+hO+8iOaUr+aMgeWklumDqOmTvuaOpeWcsOWdgO+8iVxuICAgKi9cbiAgZ2V0IGxvZ2luX3VybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmxvZ2luX3VybDtcbiAgfVxuXG4gIC8qKlxuICAgKiDlvZPliY3or7fmsYLpobXpnaLnmoTmnaXmupDpobXpnaLnmoTlnLDlnYBcbiAgICovXG4gIGdldCByZWZlcnJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmZXJyZXI7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiDorr7nva4gVG9rZW4g5L+h5oGv77yM5b2T55So5oi3IFRva2VuIOWPkeeUn+WPmOWKqOaXtumDvemcgOimgeiwg+eUqOatpOaWueazlemHjeaWsOWIt+aWsFxuICAgKi9cbiAgc2V0KGRhdGE6IElUb2tlbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jaGFuZ2UkLm5leHQoZGF0YSk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNldCh0aGlzLl9vcHRpb25zLnN0b3JlX2tleSEsIGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPliBUb2tlbiDkv6Hmga/vvIzkvovlpoLvvJpcbiAgICogYGBgXG4gICAqIC8vIOi/lOWbniBgYW55YCDnsbvlnosgVG9rZW4g5a+56LGhXG4gICAqIGNvbnN0IHRva2VuID0gdG9rZW5TZXJ2aWNlLmdldCgpO1xuICAgKiAvLyDojrflj5YgSldUIOexu+Wei+eahCBUb2tlbiDlr7nosaFcbiAgICogY29uc3QgdG9rZW4gPSB0b2tlblNlcnZpY2UuZ2V0PEpXVFRva2VuTW9kZWw+KEpXVFRva2VuTW9kZWwpO1xuICAgKiAvLyDojrflj5YgU2ltcGxlIOexu+Wei+eahCBUb2tlbiDlr7nosaFcbiAgICogY29uc3QgdG9rZW4gPSB0b2tlblNlcnZpY2UuZ2V0PFNpbXBsZVRva2VuTW9kZWw+KFNpbXBsZVRva2VuTW9kZWwpO1xuICAgKiBgYGBcbiAgICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgZ2V0KHR5cGU/OiBhbnkpOiBhbnk7XG4gIGdldDxUIGV4dGVuZHMgSVRva2VuTW9kZWw+KHR5cGU/OiBuZXcgKCkgPT4gVCk6IFQge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICBjb25zdCBkYXRhID0gdGhpcy5zdG9yZS5nZXQodGhpcy5fb3B0aW9ucy5zdG9yZV9rZXkhKTtcbiAgICByZXR1cm4gdHlwZSA/IChPYmplY3QuYXNzaWduKG5ldyB0eXBlKCksIGRhdGEpIGFzIFQpIDogKGRhdGEgYXMgVCk7XG4gIH1cblxuICAvKipcbiAgICog5riF6ZmkIFRva2VuIOS/oeaBr++8jOW9k+eUqOaIt+mAgOWHuueZu+W9leaXtuiwg+eUqOOAglxuICAgKiBgYGBcbiAgICogLy8g5riF6Zmk5omA5pyJIFRva2VuIOS/oeaBr1xuICAgKiB0b2tlblNlcnZpY2UuY2xlYXIoKTtcbiAgICogLy8g5Y+q5riF6ZmkIHRva2VuIOWtl+autVxuICAgKiB0b2tlblNlcnZpY2UuY2xlYXIoeyBvbmx5VG9rZW46IHRydWUgfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgY2xlYXIob3B0aW9uczogeyBvbmx5VG9rZW46IGJvb2xlYW4gfSA9IHsgb25seVRva2VuOiBmYWxzZSB9KSB7XG4gICAgbGV0IGRhdGE6IElUb2tlbk1vZGVsIHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKG9wdGlvbnMub25seVRva2VuID09PSB0cnVlKSB7XG4gICAgICBkYXRhID0gdGhpcy5nZXQoKSBhcyBJVG9rZW5Nb2RlbDtcbiAgICAgIGRhdGEudG9rZW4gPSBgYDtcbiAgICAgIHRoaXMuc2V0KGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICB0aGlzLnN0b3JlLnJlbW92ZSh0aGlzLl9vcHRpb25zLnN0b3JlX2tleSEpO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZSQubmV4dChkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDorqLpmIUgVG9rZW4g5a+56LGh5Y+Y5pu06YCa55+lXG4gICAqL1xuICBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2UkLnBpcGUoc2hhcmUoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJJWElfU0VSVklDRV9UT0tFTl9GQUNUT1JZKCk6IElUb2tlblNlcnZpY2Uge1xuICByZXR1cm4gbmV3IFRva2VuU2VydmljZShpbmplY3QoQml4aUNvbmZpZ1NlcnZpY2UpLCBpbmplY3QoQklYSV9TVE9SRV9UT0tFTikpO1xufVxuIl19