token的创建和使用

获得token的方法:
String userToken = getUserToken();
public String getUserToken(){
synchronized ("1") {
return "USERTOKEN"+System.currentTimeMillis();
}
}
setApplicationInfo(request, userToken, users.getUserId() + "_"
+ type + "_" + DateUtils.getTimestampByMillis());
//保存用户变量到服务器全局变量中
public Boolean setApplicationInfo(HttpServletRequest request, String uniqueName,
String uniqueId) {
ServletContext servlets = request.getSession().getServletContext();
servlets.setAttribute(uniqueName, uniqueId);
// 告知session存储成功
return true;
}
//后台根据token获得用户ID
Users user = baseService.getUser(request, token);

id=String.valueOf(user.getUserId());

public Users getUser(HttpServletRequest request,String token){
String string = request.getSession().getServletContext().getAttribute(token).toString();
if (string!=null) {
String[] split = string.split("_");
return (Users) baseDao.findById(Users.class, Long.parseLong(split[0]));//.findUser( ));//
} else{
return  null;
}

}

//在js中,可以通过token设置过滤用户不登录直接进入其他页面:
if(token != null && token != "" && token != undefined) {
$.ajax({
type: "post",
url: basePath + "/user/checkToken",
async: true,
timeout: 10000,
// 超时时间设置,单位毫秒
data: {
"token": token
},
success: function(data) {
if(data != "true") {
window.location.href = "login.html";
}
},
error: function(XMLHttpRequest, errorThrown) { // 请求完成后最终执行参数
window.location.href = "login.html";
}
});
}else{
window.location.href = "login.html";

}

@RequestMapping(value = "checkToken")

 public void updateUserInfos5(HttpServletRequest request,
HttpServletResponse response, String token) {
boolean bn = false;
try {
Object attribute = request.getSession().getServletContext()
.getAttribute(token);
if (attribute != null && attribute.toString().length() > 0) {
bn = true;
}
} catch (Exception e) {
}
JsonUtils.printCommonObject(response, bn + "");
}

//js中通过token获得id
function getUser() {
var userId = "";
$.ajax({
type: "post",
url: basePath + "/user/getUserId",
data: {
"token": token
},
async: true,
success: function(data) {
userId = eval("(" + data + ")");
$('input[name="selsRight"]').each(function() {
var ids = $(this).val();
if(userId == ids) {
$(this).attr("disabled","disabled");
}
})
$('[name="onclicks"]').each(function() {
var a = $(this).attr("vales");
if( userId == a) {
$(this).attr("onclick", "");
$(this).addClass("layui-btn layui-btn-disabled");
}
})
}
});
}


@RequestMapping("/getUserId")
public void getUserId(HttpServletResponse response,HttpServletRequest request, String token) {
String parameter = request.getSession().getServletContext().getAttribute(token).toString();
String[] split = parameter.split(",");
String[] split2 = split[0].split("_");
JsonUtils.printCommonObject(response,split2[0]);
}
### 华为云Token认证凭证的创建方法 在华为云上创建用于身份验证的Token,通常涉及以下几个方面的操作: #### 1. 使用华为云提供的在线工具生成MQTT鉴权三元组 华为云提供了一款在线工具来帮助开发者快速生成MQTT协议所需的鉴权三元组(即用户名、密码客户端ID)。此功能可以通过访问指定链接完成[^1]。 #### 2. 替换配置文件中的`{project_id}`占位符 为了使API调用能够正常工作,在实际部署前需先登录到自己的账户页面,并找到对应区域(例如:“华北-北京四”)下的具体项目ID。然后将这个真实的项目ID填入相关接口地址或者SDK初始化参数里代替原有的占位字符"{project_id}"[^2]。 #### 3. 获取临时访问令牌(Token) 通过向STS服务发送请求可以获得一个短期有效的安全令牌(Security Token),它允许应用程序代表最终用户执行某些特定的操作而无需暴露长期密钥。以下是Python实现的一个简单例子展示如何利用requests库去交换得到这样的token: ```python import requests from urllib.parse import urlencode def get_sts_token(project_id, ak, sk): endpoint = f"https://iam.{region}.myhuaweicloud.com/v3/auth/tokens" headers = { 'Content-Type': 'application/json', 'X-Sdk-Date': datetime.utcnow().strftime('%Y%m%dT%H%M%SZ') } body = { "auth": { "identity": { "methods": ["aksk"], "aksk": { "access": ak, "secret": sk } }, "scope": { "project": { "id": project_id } } } } response = requests.post(endpoint, json=body, headers=headers) if response.status_code == 201: token = response.headers['X-Subject-Token'] return token else: raise Exception(f"Failed to obtain STS token: {response.text}") # Example usage project_id = "<your_project_id>" ak = "<your_access_key>" sk = "<your_secret_key>" try: sts_token = get_sts_token(project_id, ak, sk) print(sts_token) except Exception as e: print(e) ``` 上述脚本定义了一个函数 `get_sts_token()` 来获取STSM (Security Token Service Management) 的token。注意需要替换掉 `<your_project_id>` , `<your_access_key>` `<your_secret_key>` 这些占位符为你自己账号里的真实数据[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值