auth0/auth0-spa-js — 1.0k★ trên GitHub (TypeScript). Auth0 authentication for Single Page Applications (SPA) with PKCE
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Create a Single Page Application in the Auth0 Dashboard.
If you're using an existing application, verify that you have configured the following settings in your Single Page Application:
Click on the "Settings" tab of your application's page.
Scroll down and click on the "Show Advanced Settings" link.
Under "Advanced Settings", click on the "OAuth" tab.
Ensure that "JsonWebToken Signature Algorithm" is set to RS256 and that "OIDC Conformant" is enabled.
Next, configure the following URLs for your application under the "Application URIs" section of the "Settings" page:
Allowed Callback URLs: http://localhost:3000
Allowed Logout URLs: http://localhost:3000
Allowed Web Origins: http://localhost:3000
These URLs should reflect the origins that your application is running on. Allowed Callback URLs may also include a path, depending on where you're handling the callback (see below).
Take note of the Client ID and Domain values under the "Basic Information" section. You'll need these values in the next step.
Configure the SDK
Create an Auth0Client instance before rendering or initializing your application. You should only have one instance of the client.
import { createAuth0Client } from '@auth0/auth0-spa-js';
//with async/await
const auth0 = await createAuth0Client({
domain: '<AUTH0_DOMAIN>',
clientId: '<AUTH0_CLIENT_ID>',
authorizationParams: {
redirect_uri: '<MY_CALLBACK_URL>'
}
});
//or, you can just instantiate the client on its own
import { Auth0Client } from '@auth0/auth0-spa-js';
const auth0 = new Auth0Client({
domain: '<AUTH0_DOMAIN>',
clientId: '<AUTH0_CLIENT_ID>',
authorizationParams: {
redirect_uri: '<MY_CALLBACK_URL>'
}
});
//if you do this, you'll need to check the session yourself
try {
await auth0.getTokenSilently();
} catch (error) {
if (error.error !== 'login_required') {
throw error;
}
}
Logging In
You can then use login using the Auth0Client instance you created:
<button id="login">Click to Login</button>
//redirect to the Universal Login Page
document.getElementById('login').addEventListener('click', async () => {
await auth0.loginWithRedirect();
});
//in your callback route (<MY_CALLBACK_URL>)
window.addEventListener('load', async () => {
const redirectResult = await auth0.handleRedirectCallback();
//logged in. you can get the user profile like this:
const user = await auth0.getUser();
console.log(user);
});
Online Access
[!NOTE]
Online Access (Online Refresh Tokens) support via SDKs is currently in Early Access. To request access to this feature, contact your Auth0 representative.
[!WARNING]
Online Refresh Tokens do not currently support resource servers with Ephemeral Sessions enabled. Enabling both allow_online_access and "Allow for Ephemeral Sessions" on the same resource server results in the authorization server issuing an Online Refresh Token that is then rejected (invalid_grant) on the very next refresh. Until Ephemeral Sessions support is added for Online Refresh Tokens, disable "Allow for Ephemeral Sessions" on any resource server used with refreshTokenMode: RefreshTokenMode.Online.
Set refreshTokenMode to RefreshTokenMode.Online (together with the required useRefreshTokens: true and useDpop: true) to use Online Refresh Tokens — non-rotating refresh tokens bound to the Auth0 session lifetime. The SDK injects the online_access scope and routes renewal through the refresh-token grant.
refreshTokenMode is a sub-option of useRefreshTokens: it defaults to RefreshTokenMode.Offline (the rotating refresh tokens described above) and must be set to RefreshTokenMode.Online for Online Refresh Tokens. Online mode requires both useRefreshTokens: true and useDpop: true. See Online Access in EXAMPLES.md for the full guide.
More Examples
For comprehensive examples covering various scenarios including logging out, calling APIs, refresh tokens, online access, organizations, passkeys, MFA, DPoP, and more, see the EXAMPLES.md document.
API Reference
Explore API Methods available in auth0-spa-js.
Configuration Options
Auth0Client
createAuth0Client
Feedback
Contributing
We appreciate feedback and contribution to this repo! Before you get started, please see the following:
Auth0's general contribution guidelines
Auth0's code of conduct guidelines
This repo's contribution guide
Raise an issue
To provide feedback or report a bug, please raise an issue on our issue tracker.
Vulnerability Reporting
Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.
What is Auth0?
Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout Why Auth0?
This project is licensed under the MIT license. See the LICENSE file for more info.
Có — auth0/auth0-spa-js phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/auth0/auth0-spa-js.
auth0/auth0-spa-js có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho auth0/auth0-spa-js. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
auth0/auth0-spa-js dùng license gì?
auth0/auth0-spa-js phát hành theo license MIT. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
auth0/auth0-spa-js là gì?
auth0/auth0-spa-js (auth0/auth0-spa-js) là dự án TypeScript trên GitHub. Theo mô tả gốc: Auth0 authentication for Single Page Applications (SPA) with PKCE
Cùng nhóm Frontend còn repo nào?
auth0/auth0-spa-js thuộc nhóm Frontend trên TopGit, cùng 8 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về auth0/auth0-spa-js ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/auth0/auth0-spa-js là nguồn chính thức.
Vì sao auth0/auth0-spa-js được xếp vào nhóm Frontend?
TopGit xếp auth0/auth0-spa-js vào nhóm Frontend dựa trên GitHub topics và mô tả của repo (gắn thẻ: "auth0", "auth0-js", "dx-sdk"). Việc phân loại dựa trên metadata thật của repo, không phải đoán theo cảm tính biên tập.