- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Firebase 委托(delegate)进行 Auth0 登录
.controller('LoginCtrl', function($scope, auth, $state, store) {
auth.signin({
authParams: {
// This asks for the refresh token
// So that the user never has to log in again
scope: 'openid offline_access',
// This is the device name
device: 'Mobile device'
},
// Make the widget non closeable
standalone: true
}, function(profile, token, accessToken, state, refreshToken) {
// Login was successful
// We need to save the information from the login
store.set('profile', profile);
store.set('token', token);
store.set('refreshToken', refreshToken);
auth.getToken({
api: 'firebase'
}).then(function(delegation) {
store.set('firebaseToken', delegation.id_token);
$state.go('app.categories');
}, function(error) {
console.log("There was an error getting the firebase token", error);
})
}, function(error) {
console.log("There was an error logging in", error);
});
})
Auth0 的规则将正确的 uid 分配给 token 的委托(delegate)部分:
function (user, context, callback) {
var isFirebase = context.request.body.api_type === "firebase";
if (context.isDelegation && isFirebase) {
console.log(user.user_id);
var uid = user.user_id;
var provider = uid.split("|")[0];
var id = uid.substring(uid.indexOf("|") + 1);
user.firebase_data = {
uid: provider + ":" + id
};
}
return callback(null, user, context);
}
证明 token 作为 uid(正如解码 token 中的 firebase 所期望的那样)
{
"iss": "https://gitreport.auth0.com/",
"sub": "facebook|10153081497714658",
"aud": "ZCCZrJ0ggUrk67ePh2UgHSl9FKfpMlcS",
"exp": 1438989556,
"iat": 1438953556,
"v": 0,
"d": {
"fb_id": "facebook|10153081497714658",
"uid": "facebook:10153081497714658"
},
"azp": "ZCCZrJ0ggUrk67ePh2UgHSl9FKfpMlcS"
}
尝试使用 UID 写入 Firebase 中的/users/$users:即/users/facebook|34234234 规则:
{
"rules": {
"users": {
"$user_id": {
// grants write access to the owner of this user account
// whose uid must exactly match the key ($user_id)
".write": "$user_id === auth.uid"
}
},
"salt" : {
".read" : true,
".write" : false
},
"categories" : {
".read" : true,
".write" : false
},
".read": true,
".write": false
}
}
不幸的是,我似乎无法调试 firebase 端发生的事情。据我了解,Firebase 需要 Firebase token 的委托(delegate)对象内的 uid,但我们将不胜感激。
当我用适当的用户信息替换 auth.uid(在 Firebase 规则上)时,信息会被写入,因此我有信心,如果我能以某种方式将正确的 uid 传递到 token 内的 firebase,这一切都会失败到位。
是的,我打算使用 : 而不是 |用于 uid 中的分隔符。这是基于 Firebase 的预期吗?
加藤问题的答案:
@Kato Auth0 使用委托(delegate)概念来生成 Firebase token 。该 token 存储在客户端的浏览器上。解码后, token 看起来像上面发布的 block (证明 token 包含 uid...)firebase 文档表明 uid 是 provider:id
,但是,您发送到的最后一篇文章me 表示 uid 只是一个唯一生成的字符串。
我想我不明白 auth0 的责任从哪里开始,firebase 的责任从哪里结束?为什么我需要从 auth0 委托(delegate) token ?我应该对 firebase 进行完全独立的调用来生成 token 吗?我该如何处理 Auth0 创建的 firebase token ?
对我来说,真正有趣的是,Auth0 和 Firebase 的人似乎都没有真正理解我所问的问题,也许是因为我没有以正确的方式提出这个问题。
从根本上来说,我只想使用 Auth0 对我的用户进行身份验证,然后让 Firebase 保护数据库中的端点。
最佳答案
我解决了它并写在这里:http://billbutler1969.tumblr.com/post/126341320130/auth0-with-firebase-delegation-and-security-rules
关于firebase - Auth0 与 Firebase 委派,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31879417/
我如何使用 php 将 kerberos 身份验证转发到另一台服务器(使用 CURL)。我的请求中有 $_SERVER['KRB5CCNAME'],我需要使用 curl 将其委托(delegate)给
我想知道是否有可能用 openiddict 实现一种与 here 类似的委托(delegate)授权类型使用 Identity Server。 var result = await _validato
我们正在使用 Plone 4.2.2,我们希望将用户帐户/组创建和内容管理本地角色委托(delegate)给我们的第 1 层帮助台人员。我们最初考虑使用站点管理员角色,只添加站点设置概述和站点设置用户
使用 webcomponents,您可以使用 /deep/ 定位 shadowdom 的内部元素,在我尝试使用事件委托(delegate)之前它工作正常。 一个常规的点击功能将起作用: $('html
使用 Firebase 委托(delegate)进行 Auth0 登录 .controller('LoginCtrl', function($scope, auth, $state, store) {
在下面的代码中(我希望)包含与我的问题相关的所有内容,ChangerView 中的 mouseEntered/-Exited 事件应该会更改 ChangingView 中的显示。 (ChangerVi
我已经开始使用 Hammer.js ( https://github.com/eightmedia/hammer.js ),这是一个很棒的小脚本,但我不确定如何使用 jQuery 的 .on() 事件
pymssql模块声称支持 Kerberos 身份验证(和委派),但我似乎无法启用它。 我正在运行的客户端是在 Windows 上。我需要通过反向数据库代理进行双跳连接。客户端、代理和数据库都是域的一
我正在使用 MFC 并有一个主框架,它从工具栏接收 WM_PASTE、WM_COPY 消息等。我想要做的是将此消息传递给具有焦点的 CPaneDialog,因为这是我希望我粘贴的文本去的地方。 我已经
我正在开发一个在双跃点场景中使用 kerberos 身份验证的应用程序:客户端正在连接到服务器,需要使用客户端的凭据来连接 SQL 服务器。 我已经使用 kerberos MIT 版本的 GSoap
好的,我花了大约 15 个小时试图解决这个问题,我终于辞职在这里发帖试图解决它。我知道这篇文章很长,但我已经完成了我将被告知要尝试的所有正常事情,所以我想确保它很清楚,这样我们就不会浪费时间。 我在
我们有 Sharepoint 2010 环境和 AD windows 认证用户,我们想显示来自 exchange server 2007 的用户未读收件箱电子邮件计数,但不幸的是,当我问这个问题时我们
我是一名优秀的程序员,十分优秀!