gpt4 book ai didi

spring-mvc - 通过 Spring MVC 对移动客户端进行 RESTful 身份验证

转载 作者:行者123 更新时间:2023-12-01 03:58:56 24 4
gpt4 key购买 nike

我试图找出保护我的 Spring MVC Controller (仅使用 json)的最佳方法。
我已经关注了很多问题(例如 RESTful Authentication via Spring )。
我的问题虽然似乎是一个很常见的用例,但我没有找到具体的答案。

要求:

  • 所有通信都是使用 json 从移动客户端 (Android/iPhone) 进行的。
  • 用户可以使用 facebook(使用 facebook sdk 进行客户端身份验证)登录,这意味着没有密码可以发送到服务器。
  • 不需要 BASIC 身份验证,因为没有密码,我宁愿客户端悄悄登录。
  • 重要信息 没有注册屏幕,因为我想减轻我的用户的负担,当用户登录(facebook/电子邮件)时,服务器会在数据库内动态创建一个用户,如果是 facebook,我不会像他那样向用户询问任何内容已经在本地使用 facebook sdk 进行了身份验证,至于电子邮件,服务器要求用户输入他的密码,就像他可能使用其他人的电子邮件一样。

  • 我在实现第 4 步时特别挣扎,可能会使用 Spring Security,因为我的服务器无论如何都大量使用 Spring。

    最佳答案

    我们在我们的一个 webapps 上做了类似于 #4 的事情。基本上,这个过程是:

    1) 创建(或覆盖 FacebookApiAdapter)setConnectionVales 方法。

    2) 从 Facebook 个人资料中获取电子邮件(或您用于内部用户名的任何内容)。

    3)创建一个新的身份验证 token :

     UsernamePasswordAuthenticationToken newAuth = new  UsernamePasswordAuthenticationToken(user, "yourrealm",authorities); 

    其中用户匹配您的内部用户类型,权限是一个集合(提示:只需添加带有新 SimpleGrantedAuthority 的字符串)

    4) 在 SpringSecurityContext 中设置新的 auth token :
    SecurityContextHolder.getContext().setAuthentication(newAuth);

    然后你可以使用普通的 Spring 安全设置来保护 ROLE 的东西,只要新 token 在他们的一组 GrantedAuthorities 中具有该角色。

    关于spring-mvc - 通过 Spring MVC 对移动客户端进行 RESTful 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923272/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com