Home Backend Development PHP Tutorial Oauth2.0开发 为何子要提交access_token或者还有一两个其他固定参数就能识别用户身份

Oauth2.0开发 为何子要提交access_token或者还有一两个其他固定参数就能识别用户身份

Jun 13, 2016 am 11:55 AM
access oauth openid token

Oauth2.0开发 为什么子要提交access_token或者还有一两个其他固定参数就能识别用户身份?
小弟最近要开发对APP请求的验证接口(服务端的,不是客户端哦),一直没明白,为什么通过Oauth协议流程获取到access_token之后,接下来的操作(对用户数据的增删改查)都只需要提交一个access_token,或者还有OpenID和APPKey(这些参数的有效期都是比较长,一般几天)就能判断用户的身份进行增删改查操作,小弟不明白,万一这几个参数泄露或被窃取了,那他人(第三方)不就可以通过提交这几个参数修改用户数据了吗?小弟第一次进行类似的开发,求大家指点下,如果能有源代码就更好的,在此先谢过各位~~
------解决方案--------------------

引用:
Quote: 引用:

openid是用户的唯一凭证同时关联着这个用户的所有数据,后台具体怎么实现?你指是谁的后台?用户在平台上面玩,平台肯定是能获取用户的信息,用户的需求,平台把信息给你,你根据用户的信息和需求进行反馈,给不给第三方提供接口不也是都由你做主吗?

你没明白我意思,或许是我没有阐述清楚,假设第三方已经拿到用户的访问令牌[access_token]、[OpenID]再加上第三方申请应用时获取到的身份标识[APPKey],现在第三方通过HTTP请求将这三个参数提交到腾讯API接口,腾讯后台程序通过判断这三个参数来验证用户身份,允许当前的增删改查操作。
腾讯后台程序是可以通过OpenID查找到相应的用户,这没错。我没搞懂的是腾讯后台程序怎么验证当前操作的合法性(确定是当前用户本人操作),因为这三个参数是固定不变的(有效期内),比如:A通过一些手段(HTTP监听...)获取到了B提交的这三个参数信息,那岂不是A就能通过提交这三个参数访问、修改B保存在腾讯服务器的信息了。我不是想知道腾讯后台具体是怎么去验证的,我只是想要验证的思路。

当用户通过oauth授权给第三方,第三方得到access_token之后,平台就和用户没有直接的关系了,剩下的操作都是服务器通过access_token的权限和平台进行交互。如果说access_token泄露,说明说第三方的服务器已经不安全了。在平台方能做的验证只能确保说,这个操作请求是由access_token授予的第三方应用发出,这种验证可以通过绑定应用的域名,IP,回调地址来实现
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use sql if statement How to use sql if statement Apr 09, 2025 pm 06:12 PM

SQL IF statements are used to conditionally execute SQL statements, with the syntax as: IF (condition) THEN {statement} ELSE {statement} END IF;. The condition can be any valid SQL expression, and if the condition is true, execute the THEN clause; if the condition is false, execute the ELSE clause. IF statements can be nested, allowing for more complex conditional checks.

What are the benefits of multithreading in c#? What are the benefits of multithreading in c#? Apr 03, 2025 pm 02:51 PM

The advantage of multithreading is that it can improve performance and resource utilization, especially for processing large amounts of data or performing time-consuming operations. It allows multiple tasks to be performed simultaneously, improving efficiency. However, too many threads can lead to performance degradation, so you need to carefully select the number of threads based on the number of CPU cores and task characteristics. In addition, multi-threaded programming involves challenges such as deadlock and race conditions, which need to be solved using synchronization mechanisms, and requires solid knowledge of concurrent programming, weighing the pros and cons and using them with caution.

Unable to log in to mysql as root Unable to log in to mysql as root Apr 08, 2025 pm 04:54 PM

The main reasons why you cannot log in to MySQL as root are permission problems, configuration file errors, password inconsistent, socket file problems, or firewall interception. The solution includes: check whether the bind-address parameter in the configuration file is configured correctly. Check whether the root user permissions have been modified or deleted and reset. Verify that the password is accurate, including case and special characters. Check socket file permission settings and paths. Check that the firewall blocks connections to the MySQL server.

How to configure zend for apache How to configure zend for apache Apr 13, 2025 pm 12:57 PM

How to configure Zend in Apache? The steps to configure Zend Framework in an Apache Web Server are as follows: Install Zend Framework and extract it into the Web Server directory. Create a .htaccess file. Create the Zend application directory and add the index.php file. Configure the Zend application (application.ini). Restart the Apache Web server.

How to solve the 'Network Error' caused by Vue Axios across domains How to solve the 'Network Error' caused by Vue Axios across domains Apr 07, 2025 pm 10:27 PM

Methods to solve the cross-domain problem of Vue Axios include: Configuring the CORS header on the server side using the Axios proxy using JSONP using WebSocket using the CORS plug-in

Summary of phpmyadmin vulnerabilities Summary of phpmyadmin vulnerabilities Apr 10, 2025 pm 10:24 PM

The key to PHPMyAdmin security defense strategy is: 1. Use the latest version of PHPMyAdmin and regularly update PHP and MySQL; 2. Strictly control access rights, use .htaccess or web server access control; 3. Enable strong password and two-factor authentication; 4. Back up the database regularly; 5. Carefully check the configuration files to avoid exposing sensitive information; 6. Use Web Application Firewall (WAF); 7. Carry out security audits. These measures can effectively reduce the security risks caused by PHPMyAdmin due to improper configuration, over-old version or environmental security risks, and ensure the security of the database.

How to monitor Nginx SSL performance on Debian How to monitor Nginx SSL performance on Debian Apr 12, 2025 pm 10:18 PM

This article describes how to effectively monitor the SSL performance of Nginx servers on Debian systems. We will use NginxExporter to export Nginx status data to Prometheus and then visually display it through Grafana. Step 1: Configuring Nginx First, we need to enable the stub_status module in the Nginx configuration file to obtain the status information of Nginx. Add the following snippet in your Nginx configuration file (usually located in /etc/nginx/nginx.conf or its include file): location/nginx_status{stub_status

What is apache server? What is apache server for? What is apache server? What is apache server for? Apr 13, 2025 am 11:57 AM

Apache server is a powerful web server software that acts as a bridge between browsers and website servers. 1. It handles HTTP requests and returns web page content based on requests; 2. Modular design allows extended functions, such as support for SSL encryption and dynamic web pages; 3. Configuration files (such as virtual host configurations) need to be carefully set to avoid security vulnerabilities, and optimize performance parameters, such as thread count and timeout time, in order to build high-performance and secure web applications.

See all articles