标签: jwt

socket.io-client如何在建立连接时设置请求标头

我正在尝试在socket.io客户端发出连接请求时设置http标头.有没有办法做到这一点?

这是我正在做的事情:

// server side
var io = socketio(server);

io.use(function (socket, next) {
  // authorize using authorization header in socket.request.headers
});

// client side
var socket = io();  // i'm trying to set an authorization header in this http reqeust
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢.

node.js socket.io jwt

34
推荐指数
4
解决办法
4万
查看次数

如何在.NET Core Web API中获取当前用户(来自JWT Token)

经过大量的努力(以及许多tuturials,指南等)后,我设法设置了一个小的.NET Core REST Web API,当存储的用户名和密码有效时,Auth Controller会发出JWT令牌.

令牌将用户ID存储为子声明.

当方法使用Authorize注释时,我还设法设置Web API来验证这些令牌.

 app.UseJwtBearerAuthentication(...)

现在我的问题是:如何在我的控制器中(在Web API中)读取用户ID(存储在主题声明中)?

基本上这个问题(我如何在ASP .NET Core中获得当前用户)但我需要一个web api的答案.我没有UserManager.所以我需要从某个地方阅读主题索赔.

jwt asp.net-core-webapi asp.net-core-1.1

32
推荐指数
7
解决办法
3万
查看次数

"权限不足"谷歌分析API服务帐户

我正在尝试通过服务帐户使用Google AnalyticsAPI获取数据.

我一直在搜索stackoverflow如何做到这一点,并使用几个帖子上找到的完全相同的代码,但遇到问题,让它工作.

资料来源:

服务应用程序和Google Analytics API V3:服务器到服务器OAuth2身份验证?

服务应用程序和Google AnalyticsAPI V3:错误101(net :: ERR_CONNECTION_RESET)

http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/prediction/serviceAccount.php

这就是我得到的:

require_once('googleAPIGoogle_Client.php');
require_once('googleAPI/contrib/Google_AnalyticsService.php');

const CLIENT_ID = 'xxxxxxxx001.apps.googleusercontent.com';
const SERVICE_ACCOUNT_NAME = 'xxxxxx001@developer.gserviceaccount.com';


$keyfile = $_SERVER['DOCUMENT_ROOT']."/xxxxxxx284-privatekey.p12";


$client = new Google_Client();
$client->setAccessType('offline');
$client->setApplicationName("cc insights");


$key = file_get_contents($keyfile);
$client->setClientId(CLIENT_ID);

$client->setAssertionCredentials(new Google_AssertionCredentials(
    SERVICE_ACCOUNT_NAME,
    array('https://www.googleapis.com/auth/analytics.readonly'),
    $key)
);


$service = new Google_AnalyticsService($client);

$data = $service->data_ga->get("ga:xxxx7777", "2012-01-01", "2013-01-25", "ga:pageviews");
var_dump($data);
Run Code Online (Sandbox Code Playgroud)

执行时我得到以下错误:

致命错误:未捕获的异常"Google_ServiceException"有消息"错误调用get https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end-date=2013- 01-25&metrics = ga%3Apageviews:(403)用户对此个人资料没有足够的权限.在/Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66堆栈跟踪:#0 /应用/ XAMPP/xamppfiles/htdocs中/见解/应用/库/ googleAPI/IO/Google_REST .PHP(36):Google_REST :: decodeHttpResponse(对象(Google_HttpRequest))#1 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/service/Google_ServiceResource.php(178):Google_REST ::执行(对象(Google_HttpRequest))#2 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383):Google_ServiceResource - > __呼叫( 'GET',阵列)#3 /应用/ XAMPP/xamppfiles/htdocs中/见解/应用/库/ Google.php(46):Google_DataGaServiceResource->的get('克/Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php上线66

因为我使用与工作示例完全相同的代码,我认为它可能是API或服务帐户设置的问题? …

php google-analytics-api jwt

31
推荐指数
4
解决办法
2万
查看次数

什么是不透明令牌?

它们处于“专有格式”是什么意思?我正在阅读有关 JWT 刷新令牌的信息,它们是不透明的令牌,但我不理解该术语。

oauth token oauth-2.0 jwt

31
推荐指数
2
解决办法
2万
查看次数

Oauth2 Implicit Flow使用单页面应用程序刷新访问令牌

我使用的是Thinktecture AuthorizationServer(AS),它运行良好.

我想编写一个原生的javascript单页应用程序,可以直接调用WebAPI,但隐式流程不提供刷新令牌.

如果进行了AJAX调用,如果令牌已过期,API将向登录页面发送重定向,因为数据使用动态弹出窗口,这将中断用户.

Facebook或Stackoverflow如何做到这一点,仍然允许页面上运行的javascript调用API?

提出的解决方案

下面的场景是否合理(假设可以使用iframe):

我的SPA指示我到AS,我通过Implicit Flow获得一个令牌.在AS中,我单击允许Read data范围,然后单击Remember decision,然后单击Allow按钮.

由于我点击了Remember decision按钮,每当我点击AS作为令牌时,会自动传回一个新令牌,而我无需登录(我可以看到FedAuth cookie记住了我的决定并相信这使得它能够正常工作).

使用我的SPA(不受信任的应用程序),我没有刷新令牌只有一个访问令牌.所以相反我:

  1. 确保用户已登录并单击记住决定(否则iframe将无法工作)
  2. 调用WebAPI,如果401响应尝试并通过以下步骤获取新令牌...
  3. 在页面上有一个隐藏的iframe,我将设置URL以从Authorization Server获取新的访问令牌.
  4. 从iframe的哈希片段中获取新令牌,然后将其存储在SPA中,并用于所有未来的WebAPI请求.

如果FedAuth cookie被盗,我想我仍然会遇到麻烦.

针对上述场景的任何标准或推荐方式?

javascript oauth-2.0 jwt thinktecture-ident-server

30
推荐指数
2
解决办法
5605
查看次数

前端和后端的JWT令牌策略

我正在一个nodejs服务器中编写一个前端在emberjs和后端/服务器端的应用程序.我配置了emberjs,以便用户可以使用第三方Oauth(谷歌,推特,Facebook)登录/注册.我有一个后端用快速nodejs服务器编写,它承载RESTful API.

我没有DB连接到emberjs,我不认为我应该反正,因为它是严格的客户端代码.我打算使用JWT在客户端和服务器端之间进行通信.当用户使用他们的oauth cred登录时,我会使用uid,name,login,access_token和其他详细信息从提供程序返回一个JSON对象.

我正在努力选择如何处理用户注册的策略.没有注册过程,因为它是OAuth.因此流程是如果用户不在我的数据库中,则创建它.我不支持电子邮件/密码验证.当用户第一次使用OAuth提供商登录时,流量会是多少?emberjs是否应该在每次登录时将所有详细信息发送到后端,以便后端可以向db添加新用户?

什么应该是我的JWT机构的一部分?我在想uid和提供者提供的访问令牌.我能想到的一个问题是提供者特定的访问令牌可以改变.用户可以从提供商的站点撤消令牌,并使用emberjs再次注册.

如果它更容易,我愿意在任何其他javascript客户端框架中编写前端.

api rest node.js jwt ember.js

30
推荐指数
2
解决办法
2万
查看次数

如何设计一个好的JWT认证过滤器

我是JWT的新手.网上没有太多的信息,因为我作为最后的手段来到这里.我已经使用spring会话使用spring security开发了一个spring boot应用程序.现在我们将转向JWT而不是春季会议.我找到了很少的链接,现在我可以验证用户并生成令牌.现在困难的部分是,我想创建一个过滤器,它将验证对服务器的每个请求,

  1. 过滤器如何验证令牌?(只是验证签名就够了吗?)
  2. 如果其他人盗取了令牌并进行了休息通话,我将如何验证.
  3. 我如何绕过过滤器中的登录请求?因为它没有授权标题.

spring jwt spring-boot

30
推荐指数
2
解决办法
2万
查看次数

img src链接中的授权标头

我有一个api使用jwt的authencation.我正在使用这个api的vuejs应用程序.我正在尝试使用应用程序在应用程序中显示图像

<img src="my/api/link" />
Run Code Online (Sandbox Code Playgroud)

但是api期望Authorization标题jwt token在里面.

我可以像这样在浏览器请求中添加标题(这里几个问题的回答让我相信它不可能)?

有没有办法(使用js)或我应该改变api自己?

html javascript jwt

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

使用 $fetch 和 Pinia 的 Nuxt 3 JWT 身份验证

我正在尝试对不同的 API 进行 JWT 身份验证。

由于 @nuxtjs/auth-next 似乎不是最新的,而且据我所知,可以在 Nuxt 3 中使用新的全局方法 fetch 而不是 @nuxtjs/axios (也不是最新的),我认为它自己编写身份验证代码不会太难!但这对我来说仍然是个谜,我只找到了 Vue 项目的文档(使用 Pinia 来保持用户登录),我有点迷失了。

我想实现的目标:

  • 包含电子邮件和密码的登录页面,登录请求发送到 API(编辑:完成!)
  • 从 API 获取 JWT 令牌和用户信息(编辑:完成!)并存储两者(即使页面刷新也保持用户记录)
  • 将 JWT 令牌全局设置为标头 $fetch 请求(?),这样我就不必将其添加到每个请求中
  • 如果用户未登录,则不允许访问其他页面

对此有什么帮助吗?

这是我的 login.vue 页面(之后我必须使用 Vuetify 和 vee-validate,但还是一次一步!)

// pages/login.vue
<script setup lang="ts">
import { useAuthStore } from "~/store/auth";

const authStore = useAuthStore();

interface loginForm {
  email: string;
  password: string;
}

let loginForm: loginForm = {
  email: "",
  password: "",
};

function login() {
  authStore.login(loginForm);
}
</script>

<template> …
Run Code Online (Sandbox Code Playgroud)

authentication jwt nuxtjs3 pinia

30
推荐指数
2
解决办法
4万
查看次数

OAuth2:JWT授权授予和客户端凭据授权与JWT客户端身份验证之间的区别是什么?

OAuth2 JWT配置文件引入了将JWT用作授权授权和客户端身份验证的可能性.

JWT客户端身份验证功能独立于某种授权类型,可以与任何授权类型一起使用,也可以与客户端凭据授予一起使用.

但是,使用JWT授权类型似乎与使用JWT客户端身份验证的客户端凭据授权完全相同,只是语法略有不同.

在这两种情况下,客户端都会联系令牌端点以获取访问令牌:

POST /token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=[JWT]
Run Code Online (Sandbox Code Playgroud)

VS

POST /token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=[JWT]
Run Code Online (Sandbox Code Playgroud)

oauth oauth-2.0 jwt

29
推荐指数
2
解决办法
2万
查看次数