小编JRi*_*dsz的帖子

使用 Passportjs 为我自己的 Web 应用程序管理单点登录 - 共享登录

如果我有 5 个不同的 Web 应用程序,全部托管在不同服务器上各自的域中,我可以使用 Passport.js 创建单点登录,将用户重定向到登录所有 Web 属性的位置吗?

我是否必须为此创建自己的自定义策略,或者是否有一个可以用于此类场景的通用策略?

authentication node.js oauth-2.0 passport.js

3
推荐指数
1
解决办法
4482
查看次数

Docker:python 没有安装候选者

我正在尝试从我的 docker 文件创建一个 docker 映像,其中包含以下内容:

FROM ubuntu:latest 
WORKDIR /app 
ADD . /app 
RUN apt-get update && apt-get install python -y 
CMD python /app/main.py 
LABEL color=red
Run Code Online (Sandbox Code Playgroud)

失败并出现以下错误:

apt-get update && apt-get install python -y 返回一个非零代码:100 错误

所以请帮我解决这个错误

ubuntu docker dockerfile

2
推荐指数
1
解决办法
5247
查看次数

如何以及为什么使用refresh_token处理jwt令牌过期,还有其他选择吗?

我有两场战争:app.war(struts web 应用程序)和rest.war(经典的rest api)。

app.war通过 jwt 令牌进行访问rest.war,该令牌在用户登录成功后生成app.war

当用户使用时,需要通过使用jwt token从jsp发送ajax调用来a.war获取一些数据。rest.wara.war

jwt令牌的过期时间是15分钟,而会话超时时间app.war是1小时。

但是,如果 jwt 令牌过期,即使弹出要求用户重新登录,用户仍然可以访问app.war

有一种选择:使用access_tokenrefresh_token,如果access_token过期,则使用refresh_token获取新的access_tokenrefresh_token

对于这种方法,我有一些疑问:

首先,为什么使用两个令牌?因为我认为它们是相同的,只是refresh_token寿命比 access_token并使用refresh_token新的更长access_token,所以为什么不只是access_token将其过期时间设置得更长呢?

其次access_token,生成和的算法是否相同refresh_token,只是它们的过期时间不同?

第三,如果客户端使用令牌执行多个 api 调用(同步和异步),如果其中一个调用返回 401(令牌过期),如何处理?

java authentication oauth-2.0 jwt refresh-token

1
推荐指数
1
解决办法
5815
查看次数

使用客户端凭证授予通过 Java HttpClient 从服务器检索访问令牌

我正在尝试使用戴尔的保修 API。为此,您首先需要获取访问令牌(1 小时后过期),然后使用该令牌发出 API 请求。他们有一个邮递员教程,效果很好,但我正在尝试使一些东西更加自动化,因为我们有 1000 多个资产可以使用此 API 查找。

java.net.http尽管旧 API 存在大量示例,但我仍尝试使用,但我宁愿不使用外部库或旧 API。

要获取令牌,您可以使用您的客户端 ID 和客户端密钥向他们的 API 发送请求。

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpClient.Redirect;
import java.net.http.HttpClient.Version;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.util.Base64;

public class Main {

    public static void main(String[] args) throws IOException, InterruptedException {
        
        String tokenURL = "https://apigtwb2c.us.dell.com/auth/oauth/v2/token";
        String clientID = "{redacted}";
        String clientSecret = "{redacted}";
        String formatted = clientID + ":" + clientSecret;
        String encoded = Base64.getEncoder().encodeToString((formatted).getBytes());
        
        HttpClient …
Run Code Online (Sandbox Code Playgroud)

java oauth-2.0

0
推荐指数
1
解决办法
1万
查看次数