Increasing compatability with external oauth clients
This commit is contained in:
parent
315cbb6bf5
commit
02f50caca2
@ -6,6 +6,7 @@ import { createJWT } from "../../keys";
|
|||||||
import Client from "../../models/client";
|
import Client from "../../models/client";
|
||||||
import RequestError, { HttpStatusCode } from "../../helper/request_error";
|
import RequestError, { HttpStatusCode } from "../../helper/request_error";
|
||||||
import config from "../../config";
|
import config from "../../config";
|
||||||
|
import Mail from "../../models/mail";
|
||||||
|
|
||||||
|
|
||||||
const ClientRouter = Router();
|
const ClientRouter = Router();
|
||||||
@ -45,10 +46,15 @@ ClientRouter.get("/user", Stacker(GetClientAuthMiddleware(false), GetUserMiddlew
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
ClientRouter.get("/account", Stacker(GetClientApiAuthMiddleware(), async (req: Request, res) => {
|
ClientRouter.get("/account", Stacker(GetClientApiAuthMiddleware(), async (req: Request, res) => {
|
||||||
|
let mails = await Promise.all(req.user.mails.map(id => Mail.findById(id)));
|
||||||
|
|
||||||
|
let mail = mails.find(e => e.primary) || mails[0];
|
||||||
|
|
||||||
res.json({
|
res.json({
|
||||||
user: {
|
user: {
|
||||||
username: req.user.username,
|
username: req.user.username,
|
||||||
name: req.user.name,
|
name: req.user.name,
|
||||||
|
email: mail
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
|
@ -10,6 +10,7 @@ import { randomBytes } from "crypto";
|
|||||||
// import { ObjectID } from "bson";
|
// import { ObjectID } from "bson";
|
||||||
import Grant, { IGrant } from "../../models/grants";
|
import Grant, { IGrant } from "../../models/grants";
|
||||||
import GetAuthPage from "../../views/authorize";
|
import GetAuthPage from "../../views/authorize";
|
||||||
|
import { ObjectID } from "mongodb";
|
||||||
|
|
||||||
// const AuthRoute = Stacker(GetUserMiddleware(true), async (req: Request, res: Response) => {
|
// const AuthRoute = Stacker(GetUserMiddleware(true), async (req: Request, res: Response) => {
|
||||||
// let { response_type, client_id, redirect_uri, scope, state, nored } = req.query;
|
// let { response_type, client_id, redirect_uri, scope, state, nored } = req.query;
|
||||||
@ -123,8 +124,15 @@ const GetAuthRoute = (view = false) =>
|
|||||||
let proms: PromiseLike<void>[] = [];
|
let proms: PromiseLike<void>[] = [];
|
||||||
if (scopes) {
|
if (scopes) {
|
||||||
for (let perm of scopes.filter(e => e !== "read_user")) {
|
for (let perm of scopes.filter(e => e !== "read_user")) {
|
||||||
|
let oid = undefined;
|
||||||
|
try {
|
||||||
|
oid = new ObjectID(perm);
|
||||||
|
} catch (err) {
|
||||||
|
Logging.error(err);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
proms.push(
|
proms.push(
|
||||||
Permission.findById(perm).then(p => {
|
Permission.findById(oid).then(p => {
|
||||||
if (!p) return Promise.reject(new Error());
|
if (!p) return Promise.reject(new Error());
|
||||||
permissions.push(p);
|
permissions.push(p);
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user