gpt4 book ai didi

angularjs - Angularfire、firebase JSON Web token - 如何从 token 访问身份验证数据?

转载 作者:行者123 更新时间:2023-12-02 03:40:30 24 4
gpt4 key购买 nike

我在 php 中有服务返回带有自定义数据(身份验证数据)的 token :

  include_once "FirebaseToken.php";
$secret = "***********";
$tokenGen = new Services_FirebaseTokenGenerator($secret);
$token = $tokenGen->createToken(array("name" => "ADMIN"),array( admin => true));
echo $token;

然后在 Angular 我有登录功能:

adminlogin: function(){
var token;
$http.get("http://****").success(function(data){token=data;})
.then(function(){
var dataRef = new Firebase(FBURL);
dataRef.auth(token, function(error) {
if(error) {
console.log("Login Failed!", error);
} else {
console.log("DISPLAY name FROM TOKEN");
}
});
})

在身份验证后,我想显示 token 中的名称。如何从 token 访问身份验证数据?

最佳答案

token 是一种简单的 JWT 格式。可以在浏览器中使用 window.atob() 对其进行解构。您也可以grab a polyfill对于不支持 atob/btoa 方法的浏览器。以下代码来自this gist .

// Helper function to extract claims from a JWT. Does *not* verify the
// validity of the token.
// credits: https://github.com/firebase/angularFire/blob/master/angularFire.js#L370
function deconstructJWT(token) {
var segments = token.split(".");
if (!segments instanceof Array || segments.length !== 3) {
throw new Error("Invalid JWT");
}
var claims = segments[1];
return JSON.parse(decodeURIComponent(escape(window.atob(claims))));
}

这里有一个使用这种方法构造和解构 Firebase token 的 fiddle ,为您提供一个工作示例和一个简单的测试工具:

http://jsfiddle.net/katowulf/D4YL8/embedded/result/

关于angularjs - Angularfire、firebase JSON Web token - 如何从 token 访问身份验证数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com