精华内容
下载资源
问答
  • uniapp封装token验证

    千次阅读 2020-04-06 11:01:11
    //带Token请求 const httpTokenRequest = (opts, data) => { let token = ""; uni.getStorage({ key: 'token', success: function(ress) { token = ress.data } }); //此token是登录成功后后台返回...
    //带Token请求
    const httpTokenRequest = (opts, data) => {
    	let token = "";
    	uni.getStorage({
    		key: 'token',
    		success: function(ress) {
    			token = ress.data
    		}
    	});
    	//此token是登录成功后后台返回保存在storage中的
    	let httpDefaultOpts = {
    		url: baseUrl + opts.url,
    		data: data,
    		method: opts.method,
    		header: opts.method == 'get' ? {
    			'Token': token,
    			'X-Requested-With': 'XMLHttpRequest',
    			"Accept": "application/json",
    			"Content-Type": "application/json; charset=UTF-8"
    		} : {
    			'Token': token,
    			'X-Requested-With': 'XMLHttpRequest',
    			'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    		},
    		dataType: 'json',
    	}
    	let promise = new Promise(function(resolve, reject) {
    		uni.request(httpDefaultOpts).then(
    			(res) => {
    				resolve(res[1])
    			}
    		).catch(
    			(response) => {
    				reject(response)
    			}
    		)
    	})
    	return promise
    };

     

    展开全文
  • uni app 调用接口方法与保存token

    千次阅读 2020-05-12 14:21:28
    xx:{"phone":111,"password":1234} uni.request({ ... method:'POST', data: { phone:this.xx.phone, password:this.xx.password }, success: (res) =>... })...
    			xx:{"phone":111,"password":1234}
    		
    			uni.request({
    				url: 'http://localhost:9091/staff/login', //仅为示例,并非真实接口地址。
    				method:'POST',
    				data: {
    					  phone:this.xx.phone,
    					  password:this.xx.password
    				},
    				success: (res) => {
    				}
    			})
    	
    

    uni.setStorage({
    							key:'key',
    							data:value
    						})
    

    uni.getStorage({
        key: 'key',
        success: function (res) {
            console.log(res);
        }
    });
    
    展开全文
  • uniapp无痛刷新token

    2021-06-19 01:42:46
    这里我的想法是,当token到期,返回状态码401,就发起刷新token接口,拿到新的token就把之前的请求再发送一遍,暂时解决问题此法适用uniapp噢,之前看到其他人的教程,然后按照他的做法,自己亲测之后并记录首先,...

    用户登录拿到token,但由于token是有时限的,刷新token的时候需要无声无息,用户还能继续之前的请求。

    这里我的想法是,当token到期,返回状态码401,就发起刷新token接口,拿到新的token就把之前的请求再发送一遍,暂时解决问题

    此法适用uniapp噢,之前看到其他人的教程,然后按照他的做法,自己亲测之后并记录

    首先,引入封装的request插件:

    按照插件配置服务器网址。

    在index.js中设置请求拦截程序

    import http from './interface'

    import store from "@/store/index.js"

    /**

    * 将业务所有接口统一起来便于维护

    * 如果项目很大可以将 url 独立成文件,接口分成不同的模块

    */

    module.exports={

    api: {

    userdetail:'/user', //用户详情

    //...

    },

    request:(url,data,method) => {

    http.config.baseurl = ""

    //设置请求前拦截器

    http.interceptor.request = (config) => {

    let token =uni.getstoragesync("token")

    delete config.header['authorization']

    if(token){

    config.header['authorization']='bearer ' +token

    }

    }

    //设置请求结束后拦截器

    http.interceptor.response =async (response) => {

    const statuscode=response.statuscode

    if(statuscode ===401){ //返回401,即token需刷新

    return response.data=await dorequest(response,url)

    }

    if (statuscode === 422){

    uni.hideloading()

    //业务代码...return

    }

    //不能再刷新时,服务器返回状态码500时

    if(response.statuscode ===500 ){

    store.commit("login",undefined)

    uni.removestoragesync("token")

    uni.removestorage({

    key:"password"

    })

    uni.showtoast({

    icon:"none",

    title:"身份信息过期,请重新登陆",

    duration: 1000,

    complete() {

    uni.relaunch({

    url:'/pages/login/login'

    })

    }

    })

    return

    }

    if(response.statuscode===200 || response.statuscode===201|| response.statuscode===204){ //成功

    uni.hideloading()

    return response.data

    }else {

    uni.hideloading()

    uni.showtoast({

    title:response.data.message ,

    icon:'none',

    duration: 1000

    })

    return

    }

    }

    return http.request({

    url:url,

    data,

    method:method

    })

    },

    }

    //刷新token并继续之前请求

    async function dorequest(response,url){

    const res=await module.exports.request('/authorizations/current',{},'put')

    if(res && res.access_token){

    let config=response.config

    uni.setstoragesync("token", res.access_token);

    config.header['authorization']='bearer '+res.access_token

    const resold=await module.exports.request(url,{...config.data},config.method)

    uni.hideloading()

    return resold

    }

    // else{

    // console.log("重新登陆");

    // uni.removestoragesync("token")

    // store.commit("login",undefined)

    // uni.removestoragesync("password")

    // uni.showtoast({

    // title:"身份信息过期,请重新登陆",

    // duration: 1000,

    // success() {

    // uni.relaunch({

    // url:'/pages/login/login'

    // })

    // }

    // })

    // return false

    // }

    }

    // 统一的响应日志记录 interface.js中,将401开放出来,500不开放

    _reslog(response)

    if (statuscode === 200 || statuscode === 401 || statuscode === 201 || statuscode === 204) { //成功

    resolve(response);

    } else {

    reject(response)

    }

    展开全文
  • uniapp解析token获取用户信息

    千次阅读 2020-11-19 09:38:10
    uniapp开发中,遇到一种情况,就是在某个模块,我需要根据登录的账号判断有没有权限看到该模块。于是,本来我以为这些信息都存在用户登录接口里,后来发现原来都装在token中,也就是说,我这边存储获取到token后...

    在uniapp开发中,遇到一种情况,就是在某个模块,我需要根据登录的账号判断有没有权限看到该模块。本来我以为这些信息都存在用户登录接口里,后来发现原来都装在token中,也就是说,我需要获取到token后需要自己去解析。

    1.下载依赖

    npm install jsrsasign

    2.封装一个公共方法
    import jsrsasign from 'jsrsasign'
    export const decodeToken = (token) => {
      let obj = null
      if (token !== '') {
        const payload = jsrsasign.KJUR.jws.JWS.parse(token)
        if (payload.hasOwnProperty('payloadObj')) {
          obj = payload.payloadObj
        }
      }
      return obj
    }
    
    
    3.导入,使用
    import {decodeToken} from '@/utils/jsrsasign.js'
    onShow() {
    	//token自己存储,我这就不写那个公共方法了
    	localStorage.getItem('token');
    	
    	// 解析token获取当前账号的权限数组
    	//直接使用引入的这个decodeToken方法
    	this.userData = decodeToken(localStorage.getItem('token'))
    	console.log(this.userData,"解析数据")
    },
    
    

    在这里插入图片描述
    这样就可以获取到解析后的数据了,希望对你有帮助。

    展开全文
  • otherUrl+options.url:baseurl + options.url try { const token = uni.getStorageSync('token'); // const username = uni.getStorageSync('username'); if (token) { options.header = options.header?...
  • uniapp token无痛刷新 App

    2021-05-25 14:15:13
    uniapp token无痛刷新 App 一,自己使用的是axios和uniapp.request进行数据请求 我们在使用uniapp进行开发app时候会有token过期进行续约的需求。并且页面多接口调用 如果需求是登录过期退出登录页面的自动忽略......
  • 为了给用户一个流畅的体验, token 过期后需要重新请求新的 token 替换过期的 token前端在请求接口时,和后端定义好了,如果状态码为 401 ,则表明 token 过期,需要前端请求新的 token大概流程如下:1.用户登录之后,后端...
  • 哈尔滨洛弘科技 -代码分享 -uniapp请求封装实例 -支持携带加密token
  • 1 建立一个文件名为config.... //公共接口请求地址export default baseurl;url2 在登陆接口返回数据的那步,将token存进缓存中debug// 存储tokenuni.setStorage({key: 'token',data: res.data.access_token,success:...
  • } catch (TokenExpiredException $exception) { // 此处捕获到了 token 过期所抛出的 TokenExpiredException 异常,我们在这里需要做的是刷新该用户的 token 并将它添加到响应头中 try { // 刷新用户的 token $...
  • uniapp token登录效验的思路

    千次阅读 2020-04-27 16:59:02
    http请求封装:写一个中间件,每次请求都携带token进行效验,拦截后台返回的相关错误...分别是请求退出,请求token , 请求用户信息 import { httpServer1 } from '../../rpc-service/index.js' const userStore...
  • let baseUrl = "http://xuzeqin666.top/yueche-api/public/index.php/uniapp" let header = 'application/json' return new Promise((resolve, reject) => { uni.showLoading({ title:'加载中', mask
  • uni-app请求头中携带token

    千次阅读 多人点赞 2021-01-28 10:17:49
    之前做一个前后端分离项目是,用axios进行交互,访问一些有权限的页面时,需要在请求头中携带token值,在uniapp用uni.request发送请求时我发现浏览器中请求头中并没有携带token,有些有权限的页面也无法加载出来。...
  • uniapp 封装请求,实现无痛刷新token

    千次阅读 2021-01-13 15:29:24
    uniapp封装请求,使用的是DCloud插件市场的插件:《干脆清晰的request请求库 支持各种拦截与回调 上传下载》,感谢作者! 我下载的是: 更新日期:2020-06-03 版本:4.1.0 为了实现批量上传图片,我略微改动了下...
  • // token默认过期时间 var expiredTime = +new Date() +1800*1000 // 不需要登录的接口 const noToken = [ '/auth/login' ]; const request = function(options={}) { // 判断是否需要登录 if (!(noToken.i
  • uni-app 保存和获取 token

    千次阅读 2021-01-11 19:43:26
    使用 uni-app 提供的数据缓存 api uni.setStorageSync(‘token’, ‘res.data.data’); 保存token login() { uni.request({ url:this.apiUrl+"api/index/login", method:'POST', // 传参 data:{ ...
  • 1.新建utils文件夹,新建uni_request.js export default function ({ baseURL, timeout = 56 * 1000, header: headers, statusCode = [200, 401] }) { return { get(url, data, header, ...args) { return this....
  • 1、首先我们在新建好的uniapp项目中新建一个文件夹common,再建一个request.js文件 2. 在request.js放入以下代码 var apiUrl = ''; //放入后台接口的url // #ifdef H5 var baseUrl = ''; if (process.env....
  • uniapp对接口的封装(判断身份携带token) 先在跟目录下创建utils文件夹存放接口工具类,再在改文件夹下创建myRequest.js // 异步请求接口封装 const baseUrl = 'http://localhost:1015'; // 不带token请求 export ...
  • 在使用uniapp制作安卓程序时,登陆操作,会使用到再请求头加token,来短短用户信息,但在一部分请求里,也可能用不到。所有首选创建一个名为config的js文件。 const baseurl = '...
  • 封装uniapptoken请求和上传图片

    千次阅读 2020-05-13 13:50:43
    token: res.data.msg.token, phone: res.data.msg.user.userTel, userName: res.data.msg.user.userName } uni.setStorage({ key: 'token', dat
  • 有关权限认证的 js 封装 包含无感知刷新 token laravel auth 中间件 包含无感知刷新 token 获取手机号登陆 无痛刷新 access_token 思路 小程序如何判断登陆状态 设计表结构 和一般设计表没有什么区别,如果是多...
  • 1.开发微信小程序的时候你会发现明明token值都对,而且还没过有效期,为什么请求数据的时候提示登录失效,请重新登录。 2.根据我的经验来说可能是缺少请求头的原因,不知道对你有没有效果。看下图: 1.这是第一步。...
  • uniapp + springboot实现token身份认证

    千次阅读 2020-07-02 15:10:52
    app端或者前后端分离的项目,保持用户登录认证最普遍的方法是token认证。 后端一般使用JWT进行token发放和认证,前端登录时拿到token,并在每次请求时都带上token,后端收到请求拿到token就可以认证用户信息和用户...
  • 使用vuex中的方法 调用接口数据并传参
  • uni-app实现登录保存Token

    千次阅读 2020-12-19 16:01:54
    详情查看:Sliver Rest Wp api:全功能的WordPress api工具引言在上一小节中我向大家展示了如何在uni中判断用户是否登录,在本小节中我将利用前面的登录代码实现token的存储。开始后端打开我们的主题目录下面的login...
  • 封装uni-app的需要token的请求

    千次阅读 2021-01-12 05:09:18
    config.jsconst app = {apiUrl: 'http://216:18080/webcase/', //请求的地址baseRequest(obj) {try {const userToken = uni.getStorageSync('user...if (userToken) {if (obj.header) {obj.header["token"] = userTo...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,589
精华内容 1,035
关键字:

tokenuniapp

友情链接: Effective_C++2e.rar