百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
U

useAuth

> 前端框架
开源

为您的 React 应用添加身份验证的最简单方法。支持多种提供者。

2.6K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

为您的 React 应用添加身份验证的最简单方法。支持多种提供者。

useAuth

the quickest way to add authentication to your React app

## Getting Started [`useAuth`](https://useauth.dev) is designed to be quick to setup. You'll need an account with Auth0 or Netlify Identity and the appropriate access keys. ### 1. Install the hook ``` $ yarn add react-use-auth ``` Downloads from npm, adds to your package.json, etc. You can use npm as well. ### 2. Install your auth client [`useAuth`](https://useauth.dev) does not install its own authentication clients. Instead they're marked as peer dependencies. Install `auth0-js` or `netlify-identity-widget` depending on what you'd like to use. More coming soon :) ``` $ yarn add auth0-js ``` or ``` $ yarn add netlify-identity-widget ``` You'll see warnings about missing peer dependencies for the client you aren't using. That's okay. ### 3. Configure with AuthConfig [`useAuth`](https://useauth.dev) uses an `` component to configure your authentication client. We use XState behind the scenes to manage authentication state for you. Ensure `AuthConfig` renders on every page. With Gatsby, add it to `gatsby-browser.js`. With NextJS, `_app.js` is best. You don't _need_ to wrap your component tree, but you can if you prefer. We make sure useAuth doesn't break server-side rendering. ✌️ ```jsx // gatsby-browser.js import * as React from "react"; import { navigate } from "gatsby"; import { AuthConfig } from "react-use-auth"; import { Auth0 } from "react-use-auth/auth0"; export const wrapRootElement = ({ element }) => ( <> {element} </> ); ``` `` initializes the global XState state machine, sets up an Auth0 client, and validates user sessions on every load. You now have easy access to authentication in your whole app :) The config options are: 1. `navigate` – your navigation function, used for redirects. Tested with Gatsby, NextJS, and React Router. Anything should work. 2. `authProvider` – the useAuth interface to your authentication provider. 3. `params` – parameters for your authentication provider [`useAuth`](https://useauth.dev) client wrappers provide smart defaults. More detail on using custom configuration for each client in [Use with Auth0](https://useauth.dev/docs/auth0), and [Use with Netlify Identity](https://useauth.dev/docs/netlify-identity). To learn about how this works, go to [Create an auth provider](https://useauth.dev/docs/auth-providers) PS: feel free to use my Auth0 domain and clientID to see if [`useAuth`](https://useauth.dev) is a good fit for you. That's why they're visible in the code snippet ### 4. Create the callback page Auth0 and most other authentication providers use OAuth. That requires redirecting your user to their login form. After login, the provider redirects users back to your app. You can skip this step with Netlify Identity. It uses an in-page popup. Any way of creating React pages should work, here's the code I use for Gatsby: ```jsx import * as React from "react" import { useAuth } from "react-use-auth" const Auth0CallbackPage = () => { const { handleAuthentication } = useAuth() React.useEffect(() => { handleAuthentication() }, [handleAuthentication]) return (

This is the auth callback page, you should be redirected immediately!

) } export default Auth0CallbackPage ``` The goal is to load a page, briefly show some text, and run the `handleAuthentication` method from [`useAuth`](https://useauth.dev) on page load. That method will create a cookie in local storage with your user's information and redirect back to homepage. You can pass a `postLoginRoute` param to redirect to a different page. Make sure you add `/auth0_callback` as a valid callback URL in your Auth0 config. ### 5. Enjoy useAuth You're ready to use [`useAuth`](https://useauth.dev) for authentication in your React app. Here's a login button for example: ```jsx const Login = () => { const { isAuthenticated, login, logout } = useAuth(); if (isAuthenticated()) { return Logout; } else { return Login; } }; ``` `isAuthenticated` is a method that checks if the user's cookie is still valid. `login` and `logout` trigger their respective actions. You can even say hello to your users: ```jsx // src/pages/index.js const IndexPage = () => { const { isAuthenticated, user } = useAuth() return (

Hi {isAuthenticated() ? user.name : "people"}

) } ``` Check `isAuthenticated` then use the `user` object. ✌️ --- For more detailed docs visit [useAuth.dev](https://useauth.dev) --- You can try it out here https://gatsby-useauth-example.now.sh/ ## Author **Swizec Teller ** - Github: [@swizec](https://github.com/swizec) - Twitter: [@swizec](https://twitter.com/swizec) - Blog: [swizec.com/blog](https://swizec.com/blog) ## Contributing Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/Swizec/useAuth/issues). I am looking to support other authentication providers. Please help :) ## Show your support Give a ⭐️ if this project helped you! ## License Copyright © 2019 [Swizec Teller ](https://github.com/swizec).
This project is [MIT](https://github.com/Swizec/useAuth/blob/master/LICENSE) licensed. --- _This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_ ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Dejan


Jason Miller


Graham Barber


Mateus Gabi


Jorge Galat


Swizec Teller


Nick Richmond


Ollie Monk


Henrik Wenz


Max Chehab


Joel Bartlett


SIDDIK MEHDI


Jess


Jorge Cuadra


Øyvind Marthinsen


Fredrik Søgaard


Artem Rudenko


Travers Pinkerton


Eric Hodges


Devin Fitzsimons


Jason Laster


Patrick Arminio

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

TypeScriptauth0gatsbynetlify-identitynextjs

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类前端框架
定价开源

> 相关工具

R
React
用于构建用户界面的 JavaScript 库
V
Vue.js
渐进式 JavaScript 框架
N
Next.js
基于 React 的全栈 Web 框架