【优化】优化未注册情况下,用户请求接口无权限返回提示,而可能存在loading层,导致无法操作的问题。

This commit is contained in:
大灰灰
2022-11-08 02:46:40 +08:00
parent 45877f0d5c
commit 4506c1b4ac
4 changed files with 37 additions and 93 deletions

View File

@@ -1,56 +0,0 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
namespace CoreCms.Net.Auth.Policys
{
public class ApiResponse
{
public int Status { get; set; } = 404;
public object Value { get; set; } = "No Found";
public ApiResponse(StatusCode apiCode, object msg = null)
{
switch (apiCode)
{
case StatusCode.CODE401:
{
Status = 401;
Value = "很抱歉,您无权访问该接口,请确保已经登录!";
}
break;
case StatusCode.CODE403:
{
Status = 403;
Value = "很抱歉,您的访问权限等级不够,联系管理员!";
}
break;
case StatusCode.CODE500:
{
Status = 500;
Value = msg;
}
break;
}
}
}
public enum StatusCode
{
CODE401,
CODE403,
CODE404,
CODE500
}
}

View File

@@ -35,7 +35,7 @@ namespace CoreCms.Net.Auth.Policys
protected override async Task HandleChallengeAsync(AuthenticationProperties properties) protected override async Task HandleChallengeAsync(AuthenticationProperties properties)
{ {
Response.ContentType = "application/json"; Response.ContentType = "application/json";
//Response.StatusCode = StatusCodes.Status401Unauthorized; Response.StatusCode = StatusCodes.Status401Unauthorized;
//await Response.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE401))); //await Response.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE401)));
var jm = new WebApiCallBack(); var jm = new WebApiCallBack();
@@ -49,7 +49,7 @@ namespace CoreCms.Net.Auth.Policys
protected override async Task HandleForbiddenAsync(AuthenticationProperties properties) protected override async Task HandleForbiddenAsync(AuthenticationProperties properties)
{ {
Response.ContentType = "application/json"; Response.ContentType = "application/json";
//Response.StatusCode = StatusCodes.Status403Forbidden; Response.StatusCode = StatusCodes.Status403Forbidden;
//await Response.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE403))); //await Response.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE403)));
var jm = new WebApiCallBack(); var jm = new WebApiCallBack();

View File

@@ -35,7 +35,7 @@ module.exports = (vm) => {
// }, // },
// 全局自定义验证器。参数为statusCode 且必存在,不用判断空情况。 // 全局自定义验证器。参数为statusCode 且必存在,不用判断空情况。
defaultConfig.validateStatus = (statusCode) => { // statusCode 必存在。此处示例为全局默认配置 defaultConfig.validateStatus = (statusCode) => { // statusCode 必存在。此处示例为全局默认配置
return statusCode >= 200 && statusCode < 300 return statusCode >= 200 && statusCode < 501
} }
return defaultConfig return defaultConfig
@@ -50,11 +50,10 @@ module.exports = (vm) => {
// 获取用户token // 获取用户token
const userToken = db.get("userToken"); const userToken = db.get("userToken");
if (!userToken) { if (!userToken) {
console.log("开启弹窗"); //console.log("开启弹窗");
vm.$store.commit('showLoginTip', true); vm.$store.commit('showLoginTip', true);
console.log("弹窗已经开启"); //console.log("弹窗已经开启");
//return false;
return false;
} else { } else {
config.header.Authorization = 'Bearer ' + userToken; config.header.Authorization = 'Bearer ' + userToken;
} }
@@ -72,39 +71,40 @@ module.exports = (vm) => {
// 响应拦截 // 响应拦截
uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/ uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
console.log(response);
const data = response.data const data = response.data
let pages = getCurrentPages(); if (response.statusCode == 200) {
var page = pages[pages.length - 1]; let pages = getCurrentPages();
var page = pages[pages.length - 1];
if (!data.status && page) { if (!data.status && page) {
//console.log(page.route); // 登录信息过期或者未登录
// 登录信息过期或者未登录 if (data.data === 14007 || data.data === 14006) {
if (data.data === 14007 || data.data === 14006) { // #ifdef APP-PLUS || APP-PLUS-NVUE
// #ifdef APP-PLUS || APP-PLUS-NVUE if (page.route.indexOf('pages/login/loginBySMS/loginBySMS') < 0) {
if (page.route.indexOf('pages/login/loginBySMS/loginBySMS') < 0) { db.del("userToken");
uni.showToast({
title: result.msg,
icon: 'none',
duration: 1000,
complete: function () {
setTimeout(function () {
uni.hideToast();
uni.navigateTo({
url: '/pages/login/loginBySMS/loginBySMS'
});
},
1000);
}
});
}
// #endif
// #ifdef MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO
db.del("userToken"); db.del("userToken");
uni.showToast({ //console.log("开启登录弹窗");
title: result.msg, vm.$store.commit('hasLogin', false);
icon: 'none', // #endif
duration: 1000,
complete: function () {
setTimeout(function () {
uni.hideToast();
uni.navigateTo({
url: '/pages/login/loginBySMS/loginBySMS'
});
},
1000);
}
});
} }
// #endif
// #ifdef MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO
db.del("userToken");
console.log("开启登录弹窗");
//Vue.prototype.$store.commit('showLoginTip', true);
vm.$store.commit('hasLogin', false);
// #endif
} }
} }
return data === undefined ? {} : data return data === undefined ? {} : data

View File

@@ -90,7 +90,7 @@ builder.Services.AddAdminSwaggerSetup();
builder.Services.AddHangFireSetup(); builder.Services.AddHangFireSetup();
//jwt授权支持注入 //jwt授权支持注入
builder.Services.AddAuthorizationSetupForAdmin(); builder.Services.AddAuthorizationSetupForClient();
//上下文注入 //上下文注入
builder.Services.AddHttpContextSetup(); builder.Services.AddHttpContextSetup();