cnpmcore
Version:
55 lines • 3.62 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthAdapter = void 0;
const tegg_1 = require("@eggjs/tegg");
const ioredis_1 = require("ioredis");
const crypto_1 = require("crypto");
const ONE_DAY = 3600 * 24;
/**
* Use sort set to keep queue in order and keep same value only insert once
*/
let AuthAdapter = class AuthAdapter {
async getAuthUrl(ctx) {
const sessionId = (0, crypto_1.randomUUID)();
await this.redis.setex(sessionId, ONE_DAY, '');
// INTEGRATE.md
const registry = ctx.app.config.cnpmcore.registry;
return {
loginUrl: `${registry}/-/v1/login/request/session/${sessionId}`,
doneUrl: `${registry}/-/v1/login/done/session/${sessionId}`,
};
}
// should implements in infra
async ensureCurrentUser() {
if (this.user) {
const { name, email } = this.user;
return { name, email };
}
return null;
}
};
exports.AuthAdapter = AuthAdapter;
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", ioredis_1.Redis)
], AuthAdapter.prototype, "redis", void 0);
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", Object)
], AuthAdapter.prototype, "user", void 0);
exports.AuthAdapter = AuthAdapter = __decorate([
(0, tegg_1.SingletonProto)({
accessLevel: tegg_1.AccessLevel.PUBLIC,
name: 'authAdapter',
})
], AuthAdapter);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcHAvaW5mcmEvQXV0aEFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsc0NBS3FCO0FBQ3JCLHFDQUFnQztBQUNoQyxtQ0FBb0M7QUFHcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQU8xQjs7R0FFRztBQUtJLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFPdEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFlO1FBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUEsbUJBQVUsR0FBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUvQyxlQUFlO1FBQ2YsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLEdBQUcsUUFBUSwrQkFBK0IsU0FBUyxFQUFFO1lBQy9ELE9BQU8sRUFBRSxHQUFHLFFBQVEsNEJBQTRCLFNBQVMsRUFBRTtTQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QjtJQUM3QixLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBZ0IsQ0FBQztTQUN0QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUVGLENBQUE7QUE1Qlksa0NBQVc7QUFFYjtJQURSLElBQUEsYUFBTSxHQUFFOzhCQUNPLGVBQUs7MENBQUM7QUFHYjtJQURSLElBQUEsYUFBTSxHQUFFOzt5Q0FDZTtzQkFMYixXQUFXO0lBSnZCLElBQUEscUJBQWMsRUFBQztRQUNkLFdBQVcsRUFBRSxrQkFBVyxDQUFDLE1BQU07UUFDL0IsSUFBSSxFQUFFLGFBQWE7S0FDcEIsQ0FBQztHQUNXLFdBQVcsQ0E0QnZCIn0=