digits Social Login插件 google OAuth 2.0登录 400 redirect_uri_mismatch错误解决

以下是Social Login插件google登录配置:

直接使用这个URI 会在登录时提示错误:400 redirect_uri_mismatch,此时需要点击错误详情把这个重定向URI设置到google中即可

OAuth 2.0 中 Token 的生成方式并没有在协议中进行严格的统一规定,不过常见的生成方法有以下几种: #### 随机字符串生成 可以使用随机的字符组合来生成 Token,这种方式简单直接。例如在 Python 中,可以使用 `secrets` 模块来生成安全的随机字符串: ```python import secrets import string # 定义字符集 alphabet = string.ascii_letters + string.digits # 生成 32 位的随机字符串作为 Token token = ''.join(secrets.choice(alphabet) for i in range(32)) print(token) ``` #### 基于哈希算法生成 结合当前时间戳、用户 ID 等信息,通过哈希算法(如 SHA - 256)生成 Token,这样可以保证 Token 的唯一性和不可预测性。以下是一个 Python 示例: ```python import hashlib import time user_id = 123 timestamp = str(int(time.time())) data_to_hash = str(user_id) + timestamp hash_object = hashlib.sha256(data_to_hash.encode()) token = hash_object.hexdigest() print(token) ``` #### JWT(JSON Web Token)生成 JWT 是一种常用的 Token 生成方式,它由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。以下是一个使用 Python 的 `PyJWT` 库生成 JWT Token 的示例: ```python import jwt import datetime # 密钥 SECRET_KEY = "your_secret_key" # 载荷信息 payload = { "user_id": 123, "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1) } # 生成 Token token = jwt.encode(payload, SECRET_KEY, algorithm="HS256") print(token) ``` 在 OAuth 2.0 协议规定下发 `accessToken` 时,包含 `access_token`,`token_type`,`expires_in`、`refresh_token`,以及 `scope` 字段,其中部分字段可选[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值