実装:#4
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import type { generateAuthURIOptions } from "1.6.8/types/auth";
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
|
||||
/** ユーザー認可によるトークン取得のURIを生成します。 */
|
||||
export default function generateAuthURI(options: generateAuthURIOptions) {
|
||||
const session = options.session ?? uuidv4();
|
||||
const uri = new URL("/api/auth", options.origin);
|
||||
uri.searchParams.set("session", session);
|
||||
uri.searchParams.set("client", options.name);
|
||||
uri.searchParams.set("scope", options.scope.join(","));
|
||||
if (options.icon)
|
||||
uri.searchParams.set("icon", options.icon.toString());
|
||||
if (options.about)
|
||||
uri.searchParams.set("about", options.about);
|
||||
if (options.callback) {
|
||||
if (options.callback.insertSession)
|
||||
options.callback.url.searchParams.set(options.callback.insertSession, session);
|
||||
uri.searchParams.set("icon", options.callback.toString());
|
||||
}
|
||||
|
||||
return {
|
||||
/** 生成されたURI */
|
||||
uri: uri,
|
||||
/** session */
|
||||
session: session,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user