Tech C**P
15 subscribers
161 photos
9 videos
59 files
304 links
مدرس و برنامه نویس پایتون و لینوکس @alirezastack
Download Telegram
How 3rd Party Logins work like Facebook, Google, etc?

In order to understand this concept you need to read a little bit about OAuth 2.0 flow. The flow that frontiers use in order to get access token is called Implicit Flow in this scenario in one go you get an access token and you don't need to send your client secret as everything in web is plain and end users can inspect it.

For example for Google authentication, you use the below link with resopnse_type of token NOT code (code is a 2-step authentication flow):

- https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=https://example.com/callback. html&response_type=token&scope=openid+profile+email&prompt=select_account

But there are lot more going on in the background. How a modal is opened? Or when modal get the token how it sends access token to the main window (parent window)? How do you close the opened modal after successful authorization?

These are all critical questions that any frontier programmer needs to know.

One the simplest forms of opening a popup is:

window.popUpObj = window.open(url, '_blank')

We store the popup object in window.popUpObj in order to be able to close it in the future. As we just said in google link above we have a parameter called redirect_uri, here you put a link to where you need to get the parameters from your 3rd party. Here we have set it to:

- https://example.com/callback.html

Inside of that HTML you get the parameters. Google sends data in a hash section of the URL so in callback.html we get the hash like below and then send it to the parent window using window.opener:

<script>
window.opener.loginCallback(window.location.hash);
</script>

Here get the hash part using window.location.hash and pass it to parent window function loginCallback. This function is defined in your main js file like below:

window.loginCallback = function(args) {
console.log('Login callback has been called, token: ', args);
window.popUpObj.close();
}

We get the hash part as args and then close the child window using window.popUpObj.close(). This is the object we have recently stored to refer later.

#javascript #google #3rd_party_login #login #facebook #oauth #oauth2 #implicit_flow
Tech C**P
How 3rd Party Logins work like Facebook, Google, etc? In order to understand this concept you need to read a little bit about OAuth 2.0 flow. The flow that frontiers use in order to get access token is called Implicit Flow in this scenario in one go…
A more detailed example of a sample modal is like:

window.popUpObj = window.open(url, '_blank', 'toolbar=0,status=0,resizable=0,location=0,menuBar=0,scrollbars=yes, width=' + w + ',     height=' + h + ', top=' + top + ', left=' + left);

#javascript #modal #popup
Forwarded from Pavel Durov
We’ve just started Instant View 2.0 Competition – our crowdsourcing contest with a prize fund of $300,000, ending on the 4th of April.

The goal is to create sets of rules (“templates”) that are used to generate beautiful “Instant View” previews for links shared on Telegram. Anyone with an understanding of HTML/CSS can participate. Participants get $100 for each correct template + $10,000 and $5,000 to top 2 contributors.

Check out the rules here – https://instantview.telegram.org/contest

We’ll launch more similar competitions for developers soon. Eventually there’ll be a competition for everything we do (Android, C++, voice calls etc). Winners get mighty prizes and a chance to join our dev team.

Stay tuned – we’ll announce the next competition within 10 days.
In case you want to run Selenium tests you need to run xvfb to have X virtual framebuffer (in-memory display server) you need to install it and then have script like below to run your Selenium test:

#!/bin/bash
Xvfb :10 -ac &
xvfb_pid=$!
export DISPLAY=:10
python -u test_login.py & >> /var/log/test_login.log
kill ${xvfb_pid}

In case you need to run browser in headless mode you need to install xvfb

#selenium #xvfb
Backup mysql database and gzip 9 it:

mysqldump -u $user -h $host --port=$port --password=$password $db_name | gzip -9 > "$backup_file_name"
#mysql #backup #gzip9
CodeMirror is a versatile text editor implemented in JavaScript for the browser. It is specialized for editing code, and comes with a number of language modes and addons that implement more advanced editing functionality.


- https://codemirror.net/

We ourselves have used it for json prettifier in our internal tools.

#js #javascript
Heading to Zoodroom, wish me luck 😍
#job #python
Mastering #Ansible Video #Course
Media is too big
VIEW IN TELEGRAM
#ansible part2 - Ansible requirements
In Django unittests you can use fixtures in order to create dummy data. To create fixtures you can use django dumpdata command to dump a specific data:

python3 manage.py dumpdata --indent 4 YOUR_APP.YOUR_TABLE > output_data.json


This is how you can dump data and use it as your data backend for unittests.

#django #python3 #dumpdata #unittest