UNPKG

@mvx/identity

Version:

identity is oidc for mvc, type-mvc is base on koa. Decorator, Ioc, AOP mvc framework on server.

96 lines (94 loc) 4.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SuccessResult = void 0; var tslib_1 = require("tslib"); var ValidationResult_1 = require("./ValidationResult"); /** * Authenticate `user`, with optional `info`. * * Strategies should return this action to successfully authenticate a * user. `user` should be an object supplied by the application after it * has been given an opportunity to verify credentials. `info` is an * optional argument containing additional user information. This is * useful for third-party authentication strategies to pass profile * details. * * @param {Object} user * @param {Object} info * @api public */ var SuccessResult = /** @class */ (function (_super) { tslib_1.__extends(SuccessResult, _super); function SuccessResult(options, user, info) { var _this = _super.call(this) || this; _this.options = options; _this.user = user; _this.info = info; return _this; } SuccessResult.prototype.action = function (ctx, callback) { return tslib_1.__awaiter(this, void 0, void 0, function () { var user, info, msg, options, flash, type, _a, url; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: user = this.user; info = this.info || {}; if (callback) { return [2 /*return*/, callback(null, user, info)]; } options = this.options; if (options.successFlash) { flash = options.successFlash; if (typeof flash === 'string') { flash = { type: 'success', message: flash }; } flash.type = flash.type || 'success'; type = flash.type || info.type || 'success'; msg = flash.message || info.message || info; if (typeof msg === 'string') { ctx.session.flash = { type: type, message: msg }; } } if (options.successMessage) { if (!(info.type in ctx.session.message)) { ctx.session.message[info.type] = []; } ctx.session.message[info.type].push(info.message); } if (options.userProperty) { ctx.state[options.userProperty] = user; } return [4 /*yield*/, ctx.login(user)]; case 1: _b.sent(); if (!(options.authInfo !== false)) return [3 /*break*/, 3]; _a = ctx.state; return [4 /*yield*/, ctx.passport.transformAuthInfo(info, ctx)]; case 2: _a.authInfo = _b.sent(); _b.label = 3; case 3: if (options.successReturnToOrRedirect) { url = options.successReturnToOrRedirect; if (ctx.session && ctx.session.returnTo) { url = ctx.session.returnTo; delete ctx.session.returnTo; } return [2 /*return*/, ctx.redirect(url)]; } if (options.successRedirect) { return [2 /*return*/, ctx.redirect(options.successRedirect)]; } return [2 /*return*/]; } }); }); }; SuccessResultAnn = function () { return { "name": "SuccessResult" }; }; return SuccessResult; }(ValidationResult_1.ValidationResult)); exports.SuccessResult = SuccessResult; //# sourceMappingURL=../../sourcemaps/passports/results/SuccessResult.js.map