如果我有 5 个不同的 Web 应用程序,全部托管在不同服务器上各自的域中,我可以使用 Passport.js 创建单点登录,将用户重定向到登录所有 Web 属性的位置吗?
我是否必须为此创建自己的自定义策略,或者是否有一个可以用于此类场景的通用策略?
我正在尝试从我的 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

所以请帮我解决这个错误
我有两场战争: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_token和refresh_token,如果access_token过期,则使用refresh_token获取新的access_token和refresh_token。
对于这种方法,我有一些疑问:
首先,为什么使用两个令牌?因为我认为它们是相同的,只是refresh_token寿命比 access_token并使用refresh_token新的更长access_token,所以为什么不只是access_token将其过期时间设置得更长呢?
其次access_token,生成和的算法是否相同refresh_token,只是它们的过期时间不同?
第三,如果客户端使用令牌执行多个 api 调用(同步和异步),如果其中一个调用返回 401(令牌过期),如何处理?
我正在尝试使用戴尔的保修 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)