web服务器历史信息保存多久,是否可以在Web服务器上保存用户会话?

这篇博客探讨了如何在Web服务器上为多个用户保存会话,特别是针对OAuth授权的问题。作者遇到了使用spring-social-tumblr库的困难,并尝试使用路标来管理用户访问令牌。代码示例中展示了如何获取和使用OAuth请求及访问令牌,但目前的实现仅适用于单用户。博主寻求建议以实现多用户的OAuth会话管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此代码仅适用于用户。 我正在寻找让多个用户做到这一点的方式。是否可以在Web服务器上保存用户会话?

请给我一些提示。

要运行批处理作业,我知道应该删除一些变量(is_authorized,requestToken和accessToken)。我尝试使用spring-social-tumblr(在github上),但使用ConnectionRepository并不容易。所以我试图使用路标。

用路标签名后,如何设置多用户的用户访问令牌?

使用OAuthConsumer类是否正确?

@Controller

public class TumblrProfileController {

private OAuthService service;

private Token requestToken; //should be removed for multiuser

private Token accessToken; // same above

private static final String PROTECTED_RESOURCE_URL = "http://api.tumblr.com/v2/user/info";

@Autowired

private JobLauncher jobLauncher;

@Autowired

private Job job;

@Inject

private ConnectionRepository connectionRepository;

Logger log = LoggerFactory.getLogger(this.getClass());

private boolean is_authorized = false;

@RequestMapping(value = "/tumblr/webrequest", method = RequestMethod.GET)

public String home(OAuthConsumer user, Model model) {

final String PROTECTED_RESOURCE_URL = "http://api.tumblr.com/v2/user/info";

service = new ServiceBuilder().provider(TumblrApi.class).apiKey("clientKey") .apiSecret("secretKey").callback("http://localhost:8080/pen/tumblr/login").build();

log.info("Fetching the Request Token...");

// Obtain the Request Token

requestToken = service.getRequestToken();

log.info("Now go and authorize Scribe here:");

String redirectUrl = service.getAuthorizationUrl(requestToken);

log.info(redirectUrl);

return "redirect:" + redirectUrl;

}

@RequestMapping(value = "/tumblr/login", method = RequestMethod.GET)

public String login(@RequestParam(required = false) final String oauth_verifier) {

Verifier verifier = new Verifier(oauth_verifier);

// Trade the Request Token and Verfier for the Access Token

log.info("Trading the Request Token for an Access Token...");

accessToken = service.getAccessToken(requestToken, verifier);

log.info("Got the Access Token!");

log.info("(if your curious it looks like this: " + accessToken + ")");

// Now let's go and ask for a protected resource!

log.info("Now we're going to access a protected resource...");

OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);

service.signRequest(accessToken, request);

Response response = request.send();

log.info("Got it! Lets see what we found...");

log.info(response.getBody());

log.info("Thats it man! Go and build something awesome with Scribe! :)");

run();

is_authorized = true;

return "tumblr/feed";

}

public void run() {

try {

if(! is_authorized) return;

OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);

service.signRequest(accessToken, request);

Response response = request.send();

log.info("[2nd Call ]Got it! Lets see what we found...");

log.info(response.getBody());

} catch (Exception e) {

e.printStackTrace();

}

}

+0

尊敬的编辑。请不要修改“源代码”。这可能会带来另一个问题。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值