The Gitlab OAuth Package is a JavaScript package designed to simplify the integration of Gitlab OAuth authentication into your web applications. It provides a set of utilities and components to streamline the authentication process using Gitlab OAuth.
You can install the Gitlab OAuth Package via npm:
npm install react-gitlab-oauth
or yarn
yarn add react-gitlab-oauth
Gitlab OAuth Provider
The GitlabOAuthProvider is a React context provider that provides the client_id of your Gitlab application to all components that consume it. This makes it easy to use the useGitlubLogin hook in your application.
import React from "react";
import { GitlabOAuthProvider } from "gitlab-oauth-package";
function App() {
return (
<GitlabOAuthProvider client_id="YOUR_CLIENT_ID">
{/* Your application content */}
</GitlabOAuthProvider>
);
}
export default App;
Replace YOUR_CLIENT_ID
with your Gitlab OAuth application's client ID.
You can get YOUR_CLIENT_ID
in your Gitlub => Preferences => Applications => Add new application
or here
useGitlabLogin Hook
The package includes a useGitlubLogin
hook allows you to authenticate with Gitlab and get the user's information. It takes a single argument, which is an object with the following properties:
-
client_id
: The client ID of your Gitlab application. -
onSuccess
: A callback function that will be called with the user's information if the authentication is successful. -
onError
: A callback function that will be called with an error if the authentication fails.
import { useGitlabLogin } from "gitlab-oauth-package";
function LoginPage() {
const { data, error } = useGitlabLogin({
onSuccess: (authData) => {
// Handle successful authentication
},
onError: (error) => {
// Handle authentication error
},
});
// Render your login page UI
return (
<div>
{/* Your login form */}
</div>
);
}
Make sure to provide appropriate error and success handlers to handle the authentication flow accordingly.
License This package is licensed under the MIT License.
Contribution Contributions are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.
Author This package was created by: Ihor Sergienko, and Yevhen Semeniuk.