This is a simple way to integrate gitlab authentication in your django apps.
We can get user verified email id, general information, git lab URL and token from Gitlab API.
These Following steps are needed for Gitlab integration:
a. To create an app, Go to your profile and click on applications then create an application on top of a page.
Here you can give your application name, redirect URLs then the application will be created.
b. Now you can get the client id, secret of an application
a. Here We have to create a GET request for asking user permission.
GET http://{{Your GIT_LAB_DOMAIN }}/oauth/authorize?client_id={{ Your GIT_LAB_APP_ID }} &redirect_uri={{ redirect_uri }}&response_type=code"
GIT_LAB_DOMAIN: your git lab domain,
GIT_LAB_APP_ID: your application client id,
REDIRECT_URI: The URL which you want to redirect after user login and this URL must be set in the
app registered redirected URLs.
b. If an user accepts the permissions, then authorization code will be sent to redirected URL.
c. Then we get an access token from the JSON response with the post request and the following params.
params = {
'grant_type': 'authorization_code',
'client_id': {{ Your Application id }},
'redirect_uri': {{ Your Redirect }}
'client_secret': {{ Your GIT_APP_SECRET }},
'code': request.GET.get('code')
}
POST "http://{{ GIT_LAB_DOMAIN }}/oauth/token"
params = { "access_token": {{ access_token }},} GET rty = "http://{{ GIT_LAB_DOMAIN }}/api/v3/user"
You can get the user git lab url, picture, email, name, currently sign at, created at etc values. from the JSON response.
Micropyramid is a software development and cloud consulting partner for enterprise businesses across the world. We work on python, Django, Salesforce, Angular, Reactjs, React Native, MySQL, PostgreSQL, Docker, Linux, Ansible, git, amazon web services. We are Amazon and salesforce consulting partner with 5 years of cloud architect experience. We develop e-commerce, retail, banking, machine learning, CMS, CRM web and mobile applications.
Django-CRM :Customer relationship management based on Django
Django-blog-it : django blog with complete customization and ready to use with one click installer Edit
Django-webpacker : A django compressor tool
Django-MFA : Multi Factor Authentication
Docker-box : Web Interface to manage full blown docker containers and images
More...