zoukankan      html  css  js  c++  java
  • Spring Security renren

    一是在请求头中添加Authorization:  Authorization: "Basic 用户名和密码的base64加密字符串"  。
    客户端将用户名和密码中间用“:”分隔合并,并将合并后的字符串用BASE64编码,在每次请求数据 时,将密文附加于请求头(Request Header)Authorization: Basic XXXXXXX中。
     
     
     Authorization: Basic client_id:client_secret 的base64加密字符串
    例如 Authorization: Basic renrenio:renrenio
     
    base64解码
     
    请求头 authorization:Basic cmVucmVuaW86cmVucmVuaW8=
    • /oauth/authorize    授权端点
    • /oauth/token    令牌端点
    • /oauth/confirm_access    用户批准授权的端点
    • /oauth/error    用于渲染授权服务器的错误
    • /oauth/check_token    资源服务器解码access token
    • /oauth/check_token    当使用JWT的时候,暴露公钥的端点
     
     
     
    • 密码模式(resource owner password credentials)
    • 授权码模式(authorization code)
    • 简化模式(implicit)
    • 客户端模式(client credentials)
     
    ##参数说明
    response_type:表示授权类型,必选项,此处的值固定为"code"
    client_id:表示客户端的ID,必选项
    redirect_uri:表示重定向URI,可选项
    scope:表示申请的权限范围,可选项
    state:表示客户端的当前状态,可以指定任意值,认证服务器会原封不动地返回这个值
     
     
    Authorization Basic cmVucmVuaW86cmVucmVuaW8=
     
    Authorization Bearer ee844482-76e3-4b11-be35-1808b63dc733
     
    auth/oauth/token 获取token 的时候,能否不需要head Authorization , 而且 这个 Authorization 的值(cmVucmVuaW86cmVucmVuaW8=) 是怎么来的,应该是 clientid:clientScret 格式进行base64加密后的字符串 最后一张图,我base64 了, 和 框架 的 不一样 。
     
    授权码模式(authorization code)
     
     
     
     
     
     
    数据库加密 $2a$10$aiWOK7GmRzyLyRihSF0cMedcbsEo0t11/y8f.tnBkF2hCeSd0Bq.i
     
    client_secret=renrenio
     
    我这边新添加了客户端,现在客户端sys_oauth_client_details表client_secret密码默认是renrenio,前端验证是renrenio:renrenio,我现在添加了其他客户端不能所有密码都一样吧?所以想请问这个client_secret字段的密码是怎么加密的?
     
     
     
     
    请求参数:
     
    返回信息:
    {
    "access_token": "4eb73337-d8a2-482e-aec2-bf90ac5ca61b",
    "token_type": "bearer",
    "refresh_token": "06e8e48e-6e95-485c-803e-8901c187133f",
    "expires_in": 49999,
    "scope": "all",
    "code": 0
    }
     
    第一步:
    sys_user
    密码加密
    @Autowired
    private PasswordEncoder passwordEncoder;
    String s = passwordEncoder.encode("admin");
    第二步:
    sys_oauth_client_details
    //System.out.println(new BCryptPasswordEncoder().encode("beautyfarm4212"));
    可以用的 $2a$10$xpaBOu5z2gSXuj8wfXhS5OmgH4ChUU7Gy120OFH5YHGqDmBzxH2BO
    第三步 登录:
     
    返回结果
     
     
     
     
     
     
     
     
     
     
     
     
    第一步
     
    第二步 Authorization Basic cmVucmVuaW86cmVucmVuaW8=
     
    第三步
    {
    "access_token": "4eb73337-d8a2-482e-aec2-bf90ac5ca61b",
    "token_type": "bearer",
    "refresh_token": "06e8e48e-6e95-485c-803e-8901c187133f",
    "expires_in": 39454,
    "scope": "all",
    "code": 0
    }

    小蚊子大人
  • 相关阅读:
    MongoDB安装&启动
    MongoDB集群搭建
    树与二叉树
    git入门
    MongoDB Java Driver
    Spring整合Junit4
    SQL字符串的数字部分递增
    [求职经历反面教材]4周面试20家,面霸磨成面瘫,仅供初级程序员参考!
    简陋的信息采集方式
    由一个博问学到的SQL查询方法 (一道多对多关系查询的面试题)
  • 原文地址:https://www.cnblogs.com/ywsheng/p/15073598.html
Copyright © 2011-2022 走看看