通过 Passport 实现 API 请求认证:开放平台篇(客户端凭证令牌)不同客户端令牌无法根据不同客户端而使用
一个ucenter作为用户中心,使用possport进行api认证接口。现有两个子项目对接ucenter。A和B项目。A和B项目的client-id 和 client-secret都不一样。通过A项目的client-id 和 client-secret获取的token令牌能正常访问 ucenter 接口。但是,通过B项目的client-id 和 client-secret获取的token令牌,在B项目中使用,却无法正常使用,提示的信息是:401错误。然后我尝试在B项目中也引用A项目的token令牌,却意外的发现能访问到Ucenter。在获取token的时候:grant_type 值设为 client_credentials。不是应该A和B的token令牌不一样才对吗?为什么不一样的客户端所使用的token令牌是一样的呢?
2 Comments
请先明确oauth 2.0的认证流程 clientid和client secret 仅仅用于第1次去获取授权许可 当客户端已经得到授权许可之后,再去获取访问资源的token 这个时候,生成token时只会考虑授权许可是否有效,不会考虑client id 同理,当你拿到token时,无论在何处使用,都不会有影响
生活中很多实例。譬如现在很多百x云破解,都是因为jwt的无状态特性。你可以理解为。服务端只认token,不会认人