关于token你需要知道的

本文详细介绍了在华为云上生成Token的过程,包括指定正确的endpoint、构造HTTP头部与正文的方法,并展示了如何从响应头中提取Token。同时强调了Token的有效期及使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一、token的生成

1)token的生成接口为

https://{你的endpoint} /v3/auth/tokens

比如我是北京一的,我的endpoint就是 iam.cn-north-1.myhuaweicloud.com ,如果你是其他地区的,可以参考 地区和终端 

2)要带header哦,如图所示

3)当然还要传body啦,示例如下:

{   "auth": {     "identity": {       "methods": [         "password"       ],       "password": {         "user": {           "name": "你的用户名",           "password": "你的登录密码",           "domain": {             "name": "还是你的用户名"           }         }       }     },     "scope": {       "project": {         "name": "cn-north-1" // 如果你的区域是北京一,这个地方就填这个                                            // 如果不是参考地区和终端        }     }   } }

4)请求成功之后在response的header中获取,参数名为x-subject-token,如图

5token是会过期的,如果看到返回的信息提示你 expired了或者Token update required,就要重新生成token了

6)token是很多请求都需要的,一般放在header中,参数名为:X-Auth-Token

7)由于token经常会用到,所以建议把生成tokenurl链接保存起来,下次直接调用就可以了

作者:华为云MVP郑永祥

往期文章精选

如果让你手写个栈和队列,你还会写吗?

挑战10个最难的Java面试题(附答案)【上】

javascript基础修炼(13)——记一道有趣的JS脑洞练习题

【我的物联网成长记3】如何开发物联网应用?

【HC资料合集】2019华为全联接大会主题资料一站式汇总,免费下载!

对你没有看错!不到 10 行代码完成抖音热门视频的爬取!

Python面试的一些心得,与Python练习题分享

### Token 的有效期及其查看方法 #### 1. **Token 的有效期设定** Token 的有效期取决于具体应用场景的安全性和用户体验需求。一般来说,短期有效的 Access Token 和长期有效的 Refresh Token 结合使用是一种常见模式[^3]。Access Token 的典型有效期较短(如几分钟到几小时),而 Refresh Token 的有效期较长(可能几天甚至几个月)。这样的设计既能够保障系统的安全性,又可以减少用户的重复登录次数。 例如,在某些企业级应用中,Access Token 的默认有效期可能是 1 小时,Refresh Token 则可长达 7 天或更久。当 Access Token 过期时,客户端可以通过向服务端提供有效的 Refresh Token 获取新的 Access Token,而不必让用户重新输入凭证进行身份验证[^1]^[]^。 #### 2. **如何查看 Token 的过期时间** 对于 JSON Web Token (JWT) 类型的 Token,其结构本身包含了签发时间和过期时间的信息字段 (`iat` 表示 Issued At Time;`exp` 表示 Expiration Time)[^2]。开发者可以直接解析这些字段来判断当前 Token 是否仍然处于有效期内。 以下是利用 Python 对 JWT Token 进行解码并提取其中过期时间的一个实例: ```python import jwt import datetime def decode_jwt(token): try: decoded_payload = jwt.decode(token, options={"verify_signature": False}) exp_timestamp = decoded_payload.get('exp') if not exp_timestamp: return None expiration_time = datetime.datetime.fromtimestamp(exp_timestamp) current_time = datetime.datetime.utcnow() is_expired = current_time > expiration_time remaining_seconds = (expiration_time - current_time).total_seconds() return { "isExpired": is_expired, "expiresAt": expiration_time.isoformat(), "remainingSeconds": max(remaining_seconds, 0), } except Exception as e: print(f"Error decoding JWT: {e}") return None # Example usage with a sample token string. sample_token = "your.jwt.token.here" result = decode_jwt(sample_token) if result: status_message = "expired." if result["isExpired"] else f"valid until {result['expiresAt']} ({int(result['remainingSeconds'])} seconds left)" print(f"The provided token is currently {status_message}.") else: print("Failed to check the token's validity.") ``` 此脚本中的函数 `decode_jwt()` 接收一个标准格式的 JWT 字符串作为参数,并尝试从中读取到期信息。注意这里仅做了解码动作并未校验签名合法性,实际生产环境中应当启用完整的安全选项以防止篡改攻击[^4]^[]^。 另外,如果是基于其他形式而非 JWT 实现的自定义 Token 方案,则需依据各自的设计规范去查询对应的属性值或者调用专用 API 来确认剩余存活期限。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值