Verification for successful or failed login?

kwalid600

I would like to check if after the request I successfully connected to the site or not. I tried several methods that I know but nothing works. Can someone help me please?

import requests
loginhead = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate, br',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': '89',
    'Origin': 'https://campusvirtuel.usthb.dz',
    'Connection': 'keep-alive',
    'Referer': 'https://campusvirtuel.usthb.dz/login/index.php',
    'Cookie': 'MoodleSession=s2t3h0pkqfbb8g9rugg6lpkupg',
    'Upgrade-Insecure-Requests': '1',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-User': '?1',
    'DNT': '1',
    'Sec-GPC': '1'
}
user = input('Enter username: ')
pswrd = input( 'Enter password: ')
def log():
    loginurl = 'https://campusvirtuel.usthb.dz/login/index.php'
    data = {
               'username': user,
               'password': pswrd
    }
    reqlogin = requests.post(loginurl, data=data, headers=loginhead)
    print(reqlogin)
log()
rzlvmp

If you logged in successfully server side will respond Set-Cookie header with authentication token.

Let's suppose that success header looks like:

Set-Cookie: AuthenticationToken=XXXXXXXXXXXXX; path=/

In this case your code should be like this:

import requests as r

# create new session
session = r.session()

# get logintoken
pre_login_response = session.get('https://campusvirtuel.usthb.dz/login/index.php')

if 'Set-Cookie' in pre_login_response.headers:

  # cookie format is MoodleSession=XXXXXXXXXXXXX; path=/
  cookie_name, cookie_val = [x.rstrip(';') for x in pre_login_response.headers['Set-Cookie'].split(' ')[0].split('=')]

  # new session token taken
  login_token = cookie_val
else:
  raise Exception('Can`t get session token')

# set login data
login_credentials = {
  'username': 'some_login_name',
  'password': 'some_password',
  'logintoken': login_token
}

# try to login
login_response = session.post(
  'https://campusvirtuel.usthb.dz/login/index.php',
  data=login_credentials,
  headers=custom_headers
)

# Check if we have authentication token
if 'Set-Cookie' in login_response.headers:

  cookie_name, cookie_val = [x.rstrip(';') for x in login_response.headers['Set-Cookie'].split(' ')[0].split('=')]

  if cookie_name == 'AuthenticationToken':
    print('Okay we have logged in! Success!')
  else:
    print('Something went wrong we still not logged in')
else:
  print('Something went wrong we still not logged in')

The other way is to check reqlogin.text output

reqlogin.text is a login pages's html code that means that you still not logged in. If login failed server will redirect you to login page again.

Something like:

# check if we have login button on page
if '<button type="submit" class="btn btn-primary btn-block mt-3" id="loginbtn">Connexion</button>' in reqlogin.text:
  print('That is login page')

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  3. 3

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  4. 4

    pump.io port in URL

  5. 5

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    Do Idle Snowflake Connections Use Cloud Services Credits?

  9. 9

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

  10. 10

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  11. 11

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  12. 12

    Generate random UUIDv4 with Elm

  13. 13

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  14. 14

    Is it possible to Redo commits removed by GitHub Desktop's Undo on a Mac?

  15. 15

    flutter: dropdown item programmatically unselect problem

  16. 16

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  17. 17

    EXCEL: Find sum of values in one column with criteria from other column

  18. 18

    Pandas - check if dataframe has negative value in any column

  19. 19

    How to use merge windows unallocated space into Ubuntu using GParted?

  20. 20

    Make a B+ Tree concurrent thread safe

  21. 21

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

HotTag

Archive