@octokit-next/oauth-authorization-url
v2.8.0
Published
Universal library to retrieve GitHubâs identity URL for the OAuth web flow
Downloads
29
Readme
oauth-authorization-url.js
Universal library to retrieve GitHub’s identity URL for the OAuth web flow
See GitHub’s Developer Guide for the OAuth App web application flow. Note that the OAuth web application flow for GitHub Apps is slightly different. GitHub Apps do not support scopes for its user access tokens (they are called user-to-server tokens for GitHub Apps), instead they inherit the user permissions from the GitHub App's registration and the repository/organization access and permissions from the respective installation.
Usage
Load @octokit-next/oauth-authorization-url
directly from cdn.skypack.dev
<script type="module">
import { oauthAuthorizationUrl } from "https://cdn.skypack.dev/@octokit-next/oauth-authorization-url";
</script>
Install with npm install @octokit/oauth-next-authorization-url
import { oauthAuthorizationUrl } from "@octokit-next/oauth-authorization-url";
Deno
Load @octokit-next/oauth-next-authorization-url directly from cdn.skypack.dev, including types.
import { oauthAuthorizationUrl } from "https://cdn.skypack.dev/@octokit-next/oauth-next-authorization-url?dts";
For OAuth Apps
const { url, clientId, redirectUrl, login, scopes, state } =
oauthAuthorizationUrl({
clientType: "oauth-app",
clientId: "1234567890abcdef1234",
redirectUrl: "https://example.com",
login: "octocat",
scopes: ["repo", "admin:org"],
state: "secret123",
});
For GitHub Apps
const { url, clientId, redirectUrl, login, state } = oauthAuthorizationUrl({
clientType: "github-app",
clientId: "lv1.1234567890abcdef",
redirectUrl: "https://example.com",
login: "octocat",
state: "secret123",
});
Options
Must be set to either "oauth-app"
or "github-app"
. Defaults to "oauth-app"
.
Only relevant when clientType
is set to "oauth-app"
.
An array of scope names (or: space-delimited list of scopes). If not provided, scope defaults to an empty list for users that have not authorized any scopes for the application. For users who have authorized scopes for the application, the user won't be shown the OAuth authorization page with the list of scopes. Instead, this step of the flow will automatically complete with the set of scopes the user has authorized for the application. For example, if a user has already performed the web flow twice and has authorized one token with user scope and another token with repo scope, a third web flow that does not provide a scope will receive a token with user and repo scope.
Defaults to []
if clientType
is set to "oauth-app"
.
Result
oauthAuthorizationUrl()
returns an object with the following properties
Only set if options.clientType
is set to "oauth-app"
.
Returns an array of strings. Returns options.scopes if it was set and turns the string into an array if a string was passed, otherwise [].
Types
import {
ClientType,
OAuthAppOptions,
OAuthAppResult,
GitHubAppOptions,
GitHubAppResult,
} from "@octokit-next/oauth-authorization-url";