ajax带token获得返回数据,通过js和ajax获取token及刷新token示例

本文详细介绍了基于OAuth2.0授权码模式的工作流程,包括用户授权、获取授权码、申请令牌、刷新令牌的过程。通过JavaScript的Ajax拦截器实现前端获取和刷新Token,适用于前后端分离的项目。示例代码中展示了如何使用Ajax与服务器交互,以及处理Token过期的情况。
摘要由CSDN通过智能技术生成

基于Oauth2.0协议授权码模式

授权码模式工作流程:

(A)浏览器访问该js客户端,js将网页重定向到认证服务器(/oauth/authorize),携带clientid等信息

(B)用户选择是否给予客户端授权(可自动授权)

(C)认证服务器将浏览器重定向到"重定向URI"(redirection URI),同时附上一个授权码

(D)浏览器拿到授权码,附上早先的"重定向URI",向认证服务器申请令牌(/oauth/token)

(E)认证服务器核对了授权码和重定向URI,向客户端发送访问令牌(access token)和更新令牌(refresh token)

A步骤中,客户端申请认证的URI,包含以下参数:

response_type:表示授权类型,必选项,此处的值固定为"code"

client_id:表示客户端的ID,必选项

redirect_uri:表示重定向URI,可选项

scope:表示申请的权限范围,可选项

state:一般随机生成,标识客户端的当前状态,认证服务器会原样返回这个值,

通过JS ajax拦截器获取token及刷新token示例,适用于前后端分离项目中前端的授权。

auth.js

const FULL_CHARTER = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopgrstuvwxyz‘;

const oauth_server=‘http://localhost:9000/server‘;

const redirect_uri=‘http://localhost:8002/client-front/‘;

const client_id=‘demo‘;

const client_secret=‘demo‘;

const token_storage= localStorage;//sessionStorage

functionajaxSetup() {

$.ajaxSetup({

timeout :30000,

beforeSend :function(xhr) {if(this.url.endsWith(‘/oauth/token‘)){return true;

}if (getAuth() == null){

fetchToken();

}var auth =getAuth();if(auth

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值