【问题标题】:Display current user nickname with Backbone.js and Spring Security [closed]使用 Backbone.js 和 Spring Security 显示当前用户昵称 [关闭]
【发布时间】:2016-07-01 06:54:10
【问题描述】:

这是我的项目:github。 您应该查看的文件夹是 -spring-sharedresources

我最近在我的应用中添加了登录功能,现在我想显示当前用户昵称。

我现在在导航栏中创建了一个占位符,现在只显示sam

使用 Backbone 和 Spring Security 获取当前用户信息的方法有哪些?

【问题讨论】:

    标签: javascript spring backbone.js spring-security


    【解决方案1】:

    您可以创建一个公开用户信息的 REST 端点。如果您只需要用户名,那么您可以公开一个如下所示的端点:

    @RestController
    public class UserController {
        @RequestMapping("/users/self")
        public String self(Principal user) {
            return user == null ? null : user.getName();
        }
    }
    

    当然,如果您想公开有关您的用户的所有详细信息,您可以让它变得更有趣:

    @RestController
    public class UserController {
        @RequestMapping("/users/self")
        public Principal self(Principal user) {
            return user;
        }
    }
    

    注意:请注意将哪些属性写入响应,因为您不希望以这种方式公开用户的密码。

    如果你想更花哨,你可以使用 Spring Security 的@AuthenticationPrincipal

    @RestController
    public class UserController {
        @RequestMapping("/users/self")
        public Principal self(@AuthenticationPrincipal UserDetails user) {
            return user;
        }
    }
    

    注意:请注意将哪些属性写入响应,因为您不希望以这种方式公开用户的密码。

    一旦您通过 REST 端点公开了您的用户,您就可以像往常一样调用该端点来更新您的用户信息。

    【讨论】:

    • 感谢您提供如此详细的帖子,但我或多或少知道如何在 java 中制作它,我不知道在我的项目结构中骨干的最佳实践是什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2020-10-15
    • 2016-03-28
    相关资源
    最近更新 更多