长话短说,我遇到了 auth0 的 AuthHttpInterceptor 类实际上没有将令牌附加到任何传出请求的问题。
我一直在关注本教程系列,以便在简单的 Flask 和 Angular 应用程序中设置 auth0。我遵循 Flask 组件,并设置了一个简单的端点来从数据库中检索一些数据。请注意,@requires_auth装饰器与教程中的装饰器完全相同:
@app.route("/api/v1/members", methods=["GET"])
@requires_auth
def get_all_members():
# Pagination Logic
page_num, page_size = 1, 10
if request.args.get('pn'):
page_num = int(request.args.get('pn'))
if request.args.get('ps'):
page_size = int(request.args.get('ps'))
page_start = (page_size * (page_num - 1))
return_data = []
for member in members.find().skip(page_start).limit(page_size):
# Convert all IDs into strings
member = convert_member_ids(member)
return_data.append(member)
return make_response(jsonify(return_data), 200)
Run Code Online (Sandbox Code Playgroud)
这不是将受到限制的实际端点,我只是保护此页面以测试身份验证是否有效。
在 Angular 中,这是由检索数据并将其显示在网页上的组件使用的:
export class MembersComponent implements OnInit {
constructor(private webService: WebService) …Run Code Online (Sandbox Code Playgroud) 我的数据库中有几个表(带有数据),其格式为美国标准 mm/dd/yyyy。有没有一种方法可以将日期转换为英国格式(即 dd/mm/yyyy),而不涉及删除和重新创建表格?
谢谢!
在我的项目中,我正在使用 Firebase 身份验证实现登录系统。由于我使用电子邮件登录,因此我无法在身份验证中存储任何用户的名称 - 相反,我将它们作为 userId 的子代存储在实时数据库中。所以我的数据库结构是这样的:
fireapp
+users
+userID
Name: <name>
Run Code Online (Sandbox Code Playgroud)
每个用户都会根据他们的 ID 有一个记录。
当我的用户登录时,他们将被带到带有导航抽屉的主屏幕。在这个抽屉的标题中,我想显示用户的姓名和电子邮件。到目前为止,我已经使用 FirebaseAuth 设置了电子邮件,但事实证明设置名称更加困难。
这是我目前使用的代码:
String userId = mAuth.getUid();
TextView userEmail = (TextView) findViewById(R.id.lblHeaderName);
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference ref = db.getReference("users/" + userId);
ref.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
//Retrieve the user's name and set the textview in the header accordingly
String name = dataSnapshot.getValue(String.class);
userName.setText(name);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
//If the task is not successful, print …Run Code Online (Sandbox Code Playgroud)